PHP面向对象编程基础(一)

news/2024/7/5 5:08:51

PHP面向对象编程基础

在PHP中,面向对象编程是一种非常常见的编程范式。它允许我们将代码组织成可重用和可扩展的类和对象,并提供了许多强大的功能,例如封装、继承和多态性。

类和对象

在PHP中,类是一种定义对象的蓝图或模板。它定义了对象的属性和方法。类可以看作是一种自定义数据类型。

class Person {
  public $name;
  public $age;

  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  public function sayHello() {
    echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old.";
  }
}

$person = new Person("John", 30);
$person->sayHello();

在上面的例子中,我们定义了一个名为Person的类,并创建了一个名为person的对象。Person类具有两个属性nameage,以及一个方法sayHello()。我们使用new关键字创建了一个Person对象,并将其存储在person变量中。我们使用->运算符访问对象的属性和方法。

封装

封装是面向对象编程的一个核心概念。它允许我们将对象的属性和方法隐藏起来,只允许对象自身访问它们。这样可以降低代码的耦合度,并提高代码的安全性。

class Person {
  private $name;
  private $age;

  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  public function sayHello() {
    echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old.";
  }

  public function getName() {
    return $this->name;
  }

  public function getAge() {
    return $this->age;
  }
}

$person = new Person("John", 30);
echo $person->getName(); // 输出 "John"
echo $person->getAge(); // 输出 "30"

在上面的例子中,我们将nameage属性定义为私有属性,意味着它们只能在Person对象内部访问。我们定义了getName()getAge()方法,用于获取对象的nameage属性。


http://lihuaxi.xjx100.cn/news/1001954.html

相关文章

配置提取到配置类中,并且注入到spring容器

Data ConfigurationProperties(prefix "solr.config") EnableConfigurationProperties({CustomSolrConfigPathProperties.class}) Component public class CustomSolrConfigPathProperties {/*** 上传的配置文件的路径*/private String path;/*** 删除文件的父路径*…

不要图片?CSS实现大屏常见不规则边框(系列二)

前言 👏不要图片?CSS实现大屏常见不规则边框(系列二),速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现原理 系列一已经陈述了相关原理,感兴趣的小伙伴直接参…

NLP | SentenceTransformer将句子进行编码并计算句子语义相似度

环境设置: SentenceTransformertransformers SentenceTransformers Documentation — Sentence-Transformers documentation (sbert.net) Sentence Transformer是一个Python框架,用于句子、文本和图像嵌入Embedding。 这个框架计算超过100种语言的句子…

兆芯最新X86 CPU曝光:性能与英特尔/AMD相比,没落后10年

众所周知,在PC领域,X86完全是处于垄断地全的,至少占了90%以上的份额。其它的像MIPS、ARM、RISC-V等等,都不是X86的对手。 这与X86是复杂指令集有关,更与X86绑定了windows操作系统,有坚固的intel联盟有关&am…

《iTOP-3568开发板快速测试手册》第6章 Ubuntu系统功能测试 (5)

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

LeetCode:455. 分发饼干——贪心算法

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀算法专栏: 👉🏻123 贪心算法是在每个阶段选取局部最优解,最终得到全局最优解的一种思想。贪心算法…

算法 DAY20 二叉树 || 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

654.最大二叉树 蛮简单的,逻辑跟构造树基本一致 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : …

医学影像系统弱监督语义分割集成的探索

Exploring Weakly Supervised Semantic Segmentation Ensembles for Medical Imaging Systems 摘要 利用复杂数据集的低质量CAM预测来提高结果的准确性使用低阈值CAMs以高确定性覆盖目标对象通过组合多个低阈值cam,在突出显示目标对象的同时均匀地消除它们的错误 …