PHP 类怎么定义

在日常写代码时,我们常需要把同类型的东西打包整理,比如把“猫”的共性整理成一套规则,以后就能直接用这套规则生成具体的猫,不用每次重新写“这动物有毛、会叫、会跑”这类细节,这就是面向对象编程里最基础的“类”的作用,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类的定义其实就是“起个名字→装属性→装方法→生成实例用”,就像整理自己的书包,把课本、笔、本子分类放好,以后找东西不用乱翻。平时写代码时,遇到重复的、同类型的内容,都可以尝试用类来整理,能让代码更清晰,也不容易出错。

上一篇 PHP PHPUnit 怎么用