PHP 如何创建对象

家里要组装一个书架,得先有“书架模板”(好比PHP里的类),再用这个模板做出一个个实实在在的书架(就是对象)。刚学PHP的朋友可能会懵:为啥要先写“模板”?其实就和你不会凭空捏出一个书架,得先照着设计图做一样,这就是创建对象的核心逻辑。

第一步:先写“设计图”——定义类

PHP里的类就是创建对象的“设计图”,它会告诉程序:这个东西有啥属性(比如书架的层数、颜色),能做啥事(比如放书、取书)。用个生活化的例子就懂:你要做“小学生书桌”的模板,就会写清楚“有1个抽屉、桌面是蓝色、能放文具”。

PHP 如何创建对象

写类的代码特别简单,用class关键字就行:

`php

// 小学生书桌的设计图(类)

class Desk {

// 属性:就是这个东西的“特征”,像书桌的样子

public $color = '蓝色'; // 桌面颜色

public $drawerNum = 1; // 抽屉数量

// 方法:就是这个东西“会做的事”,像书桌能放文具

public function putStationery($item) {

echo "把{$item}放进抽屉啦~";

}

}

`

这里要注意两个小细节:public是权限,简单说就是“谁都能看见/用”,比如大家都能看书桌的颜色;function后面的putStationery是方法,相当于书桌的“技能”。

第二步:照着“设计图”做实体——实例化类

有了设计图,接下来就是做实实在在的书桌,这个过程叫“实例化类”,做出来的书桌就是“对象”。就像你照着图纸拼好的那个蓝色小书桌,就是一个对象。

实例化用new关键字,代码如下:

`php

// 做第一张小书桌(实例化,得到对象)

$myDesk = new Desk();

`

这行代码就像你喊了一句“照着这个设计图做个书桌!”,PHP就给你生成了一个真的书桌,存到$myDesk这个变量里。

第三步:用“实体”的属性和方法——操作对象

做书桌不是放着看的,得用它放文具、看颜色,这就是调用对象的属性和方法,用->这个符号就行,像指一下书桌说“用这个放东西”。

比如:

`php

// 看这张书桌的颜色

echo $myDesk->color; // 输出:蓝色

// 用这张书桌放铅笔

$myDesk->putStationery('铅笔'); // 输出:把铅笔放进抽屉啦~

`

是不是特别好懂?就像你指着自己的书桌说“这是我的蓝色书桌,我用它放铅笔”,PHP里就是这么操作的。

进阶:做不一样的“同款书桌”——带参数的构造方法

有时候你要做的书桌不是蓝色,是粉色的,难道要重新写一个类?不用,给类加个“定制按钮”就行,这就是构造方法。它会在你做对象的时候,自动帮你设置好属性,不用做完再改。

比如修改类,加上构造方法:

`php

class Desk {

public $color;

public $drawerNum;

// 构造方法:实例化时自动调用,用来“定制”属性

public function __construct($deskColor, $drawerCount) {

$this->color = $deskColor; // $this指当前对象,比如刚做好的这张书桌

$this->drawerNum = $drawerCount;

}

public function putStationery($item) {

echo "把{$item}放进{$this->drawerNum}个抽屉里啦~";

}

}

`

现在做粉色双抽屉的书桌,不用改类,直接给参数就行:

`php

// 做一张粉色、2个抽屉的书桌

$myDaughterDesk = new Desk('粉色', 2);

echo $myDaughterDesk->color; // 输出:粉色

$myDaughterDesk->putStationery('橡皮'); // 输出:把橡皮放进2个抽屉里啦~

`

这里的__construct是PHP固定的构造方法名字,只要这么写,实例化时就会自动跑,特别方便。

其实创建对象的核心逻辑就是:先写“模板(类)”规定属性和功能,再用new把模板变成具体的实体(对象),最后用->操作实体的属性和方法。就像你做任何东西都得先有设计图,再做出实物一样,没有复杂的术语,照着例子多试两次就会了。

上一篇 JavaScript 事件冒泡和捕获区别