PHP 类怎么定义
在日常写代码时,我们常需要把同类型的东西打包整理,比如把“猫”的共性整理成一套规则,以后就能直接用这套规则生成具体的猫,不用每次重新写“这动物有毛、会叫、会跑”这类细节,这就是面向对象编程里最基础的“类”的作用,PHP里也有简单好上手的定义方式,普通人也能快速学会。
先搞懂:PHP类是啥?
你可以把PHP类理解成“模板”,就像奶茶店的标准化制作流程:不管做珍珠奶茶、芋泥奶茶,都先有一个“奶茶模板”——要选茶底、加奶、加配料,只是配料换了而已。PHP里的类也是这样,它把“属性”(相当于模板里的固定材料)和“方法”(相当于模板里的操作步骤)打包在一起,以后用这个模板生成的“具体实例”(比如某一杯珍珠奶茶),都能直接用这些属性和方法,不用重复写代码。

举个生活化的例子:如果我们要做一个“学生”类,属性就是每个学生都有的“姓名”“班级”“学号”,方法就是学生都会的“上课”“做作业”。以后只要用这个类生成具体的学生(比如叫“小明”的三年级学生),小明就自动有姓名、班级这些属性,还能直接调用“上课”方法,不用重新写一遍“小明的姓名是小明,会上课”。
第一步:PHP类的基础定义
PHP里定义类用class关键字,格式特别简单,就像给模板起个名字,再把属性和方法装进去,核心结构是class 类名 { ... }。
比如我们要定义刚才说的“学生”类,先写:
`php
class Student {
// 这里放属性
// 这里放方法
}
`
注意类名要按规则写,尽量见名知意,比如用Student不用叫xue Sheng,方便别人看懂。
第二步:给类加属性——模板的“材料”
属性就是类的特征,比如学生的姓名、班级,PHP里用变量表示属性,还要加访问修饰符(简单理解成“权限”),最常用的是public(公共的,所有地方都能改),避免复杂术语的话,你可以先记public,就像公开的材料,谁都能拿。
给学生类加属性:
`php
class Student {
// 用public修饰属性,是学生的公共特征
public $name; // 学生姓名
public $class; // 学生班级
public $studentId; // 学生学号
}
`
就像奶茶模板里的“茶底、奶、配料”,每个学生都有这些东西,以后生成具体学生时,再把具体值填进去。
第三步:给类加方法——模板的“操作”
方法就是类的功能,比如学生的“上课”“做作业”,PHP里用函数表示方法,同样用访问修饰符,还是先记public就行,就像模板里固定的操作步骤。
给学生类加方法:
`php
class Student {
public $name;
public $class;
public $studentId;
// 上课的方法
public function attendClass() {
echo $this->name . "正在" . $this->class . "上课";
}
// 做作业的方法
public function doHomework() {
echo $this->name . "正在做数学作业";
}
}
`
这里的$this是PHP类里的专属代词,简单说就是“当前这个具体的学生”,比如$this->name就是指“这个学生的姓名”,用它就能把属性和方法绑定在一起。
第四步:用类生成具体实例——得到真实的“东西”
光有模板没用,得用类生成具体的学生,就像用奶茶模板做出一杯珍珠奶茶。PHP里用new关键字生成实例,格式是$实例名 = new 类名();,再给属性赋值,就能用方法了。
比如生成小明这个学生:
`php
// 用Student类生成叫小明的实例,存到$xiaoming里
$xiaoming = new Student();
// 给小明的属性赋值
$xiaoming->name = "小明";
$xiaoming->class = "三年级2班";
$xiaoming->studentId = "2024030201";
// 调用上课方法,会输出“小明正在三年级2班上课”
$xiaoming->attendClass();
`
如果要做小红,再用new Student()生成一个实例就行,不用重新写一遍属性和方法,大大节省代码量。
现在你会发现,PHP类的定义其实就是“起个名字→装属性→装方法→生成实例用”,就像整理自己的书包,把课本、笔、本子分类放好,以后找东西不用乱翻。平时写代码时,遇到重复的、同类型的内容,都可以尝试用类来整理,能让代码更清晰,也不容易出错。