PHP 如何创建对象
家里要组装一个书架,得先有“书架模板”(好比PHP里的类),再用这个模板做出一个个实实在在的书架(就是对象)。刚学PHP的朋友可能会懵:为啥要先写“模板”?其实就和你不会凭空捏出一个书架,得先照着设计图做一样,这就是创建对象的核心逻辑。
第一步:先写“设计图”——定义类
PHP里的类就是创建对象的“设计图”,它会告诉程序:这个东西有啥属性(比如书架的层数、颜色),能做啥事(比如放书、取书)。用个生活化的例子就懂:你要做“小学生书桌”的模板,就会写清楚“有1个抽屉、桌面是蓝色、能放文具”。

写类的代码特别简单,用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把模板变成具体的实体(对象),最后用->操作实体的属性和方法。就像你做任何东西都得先有设计图,再做出实物一样,没有复杂的术语,照着例子多试两次就会了。