PHP OOP-类和对象
类是对象的模板,对象是类的实例。
面向对象案例
假设我们有一个名为 Fruit 的类。Fruit 可以具有名称、颜色、重量等属性。我们可以定义 $name、$color 和 $weight 等变量来保存这些属性的值。
当创建单个对象(苹果、香蕉等)时,它们会从类中继承所有属性和行为,但每个对象的属性值都会有所不同。
定义一个类
类的定义方式如下: class
关键字,后跟类名和一对花括号 ({})。其所有属性和方法都放在括号内:
句法
<?php
水果类 {
// 代码放在这里...
}
?>
下面我们声明一个名为 Fruit 的类,它由两个属性($name 和 $color)以及两个方法 set_name() 和 get_name() 组成,用于设置和获取 $name 属性:
<?php
水果类 {
// 特性
公共$名称;
公共$颜色;
// 方法
函数 set_name($name) {
$this->名称 = $名称;
}
函数获取名称(){
返回 $this->name;
}
}
?>
笔记: 在类中,变量被称为属性,函数被称为方法!
定义对象
没有对象,类就毫无意义!我们可以从一个类创建多个对象。每个对象都具有类中定义的所有属性和方法,但它们的属性值会有所不同。
类的对象是使用 new
关键词。
在下面的例子中,$apple 和 $banana 是 Fruit 类的实例:
例子
<?php
水果类 {
// 特性
公共$名称;
公共$颜色;
// 方法
函数 set_name($name) {
$this->名称 = $名称;
}
函数获取名称(){
返回 $this->name;
}
}
$苹果 = 新水果();
$香蕉 = 新水果();
$苹果->设置名称('苹果');
$banana->设置名称('香蕉');
回声$apple->get_name();
回显<br> “;
回声$banana->get_name();
?>
亲自尝试 »
在下面的例子中,我们向 Fruit 类添加了两种方法,用于设置和获取 $color 属性:
例子
<?php
水果类 {
// 特性
公共$名称;
公共$颜色;
// 方法
函数 set_name($name) {
$this->名称 = $名称;
}
函数获取名称(){
返回 $this->name;
}
函数 set_color($color) {
$this->颜色 = $颜色;
}
函数 get_color() {
返回 $this->color;
}
}
$苹果 = 新水果();
$苹果->设置名称('苹果');
$苹果->set_color('红色');
echo "名称: " . $apple->get_name();
回显<br> “;
echo "颜色: " . $apple->get_color();
?>
亲自尝试 »
PHP - $this 关键字
$this 关键字引用当前对象,并且仅在方法内部可用。
请看以下示例:
例子
<?php
水果类 {
公共$名称;
}
$苹果 = 新水果();
?>
那么,我们可以在哪里更改 $name 属性的值?有两种方法:
1. 在类内部(通过添加 set_name() 方法并使用 $this):
例子
<?php
水果类 {
公共$名称;
函数 set_name($name) {
$this->名称 = $名称;
}
}
$苹果 = 新水果();
$苹果->设置名称(“苹果”);
回声$苹果->名称;
?>
亲自尝试 »
2. 在类之外(通过直接改变属性值):
PHP - 实例
您可以使用 instanceof
关键字来检查对象是否属于特定类: