PHP 中的面向对象编程 (Object-Oriented Programming, OOP) 特点主要包括以下几点:
-
封装:
- 封装是指将数据(属性)和对数据的操作(方法)捆绑在一起形成一个独立的实体——类。通过类,可以隐藏对象内部的复杂性,对外仅暴露必要的接口,从而保证了数据的安全性和完整性。在PHP中,可以使用
public
、protected
和private
关键字来控制成员变量(属性)和成员函数(方法)的访问权限。
- 封装是指将数据(属性)和对数据的操作(方法)捆绑在一起形成一个独立的实体——类。通过类,可以隐藏对象内部的复杂性,对外仅暴露必要的接口,从而保证了数据的安全性和完整性。在PHP中,可以使用
-
继承:
- 继承允许创建一个类(子类)从另一个类(父类)继承属性和方法。这样子类不仅可以复用父类的功能,还可以在此基础上扩展新的属性和方法。在PHP中,使用
extends
关键字实现类的继承。
- 继承允许创建一个类(子类)从另一个类(父类)继承属性和方法。这样子类不仅可以复用父类的功能,还可以在此基础上扩展新的属性和方法。在PHP中,使用
-
多态:
- 多态指的是同一接口(方法名)在不同类的实例中可以有不同的实现方式。PHP支持两种形式的多态:静态多态(编译时多态,例如重载)和动态多态(运行时多态,通过
__call()
、__callStatic()
等魔术方法以及接口和抽象类实现)。
- 多态指的是同一接口(方法名)在不同类的实例中可以有不同的实现方式。PHP支持两种形式的多态:静态多态(编译时多态,例如重载)和动态多态(运行时多态,通过
-
抽象:
- 抽象类(abstract class)是用来定义一个类家族的通用接口,它可以包含抽象方法(没有具体实现的方法),子类必须覆盖这些抽象方法才能被实例化。此外,接口(interface)也是实现多态的一种手段,它规定了一组方法签名,所有实现该接口的类都必须提供相应的实现。
-
魔术方法:
- 魔术方法是PHP中一些特殊的方法名称,它们会在特定的时刻自动被调用,例如构造函数
__construct()
用于初始化对象,析构函数__destruct()
在对象被销毁前调用以清理资源。
- 魔术方法是PHP中一些特殊的方法名称,它们会在特定的时刻自动被调用,例如构造函数
对象:
在PHP中,对象是一个类的实例。当你根据类创建一个新的实例时,你就创建了一个对象。对象包含了类定义的所有属性和方法,可以通过对象来调用其方法并操作属性,从而体现类定义的行为和状态。例如:
class Animal {
public $color;
function speak() {
echo "Making a sound!";
}
}
$dog = new Animal(); // 创建Animal类的对象(实例)
$dog->color = "Brown"; // 设置对象的属性
$dog->speak(); // 调用对象的方法
//实例化
$cat = new Animal(); // 创建Animal类的对象(实例)
$cat->color = "red"; // 设置对象的属性
$cat->speak(); // 调用对象
$dog->speak(); // 调用对象的方法
//发现只会根据实例化的对象内的内容改变,两个实例化的对象,修改变量后并不会改变彼此类中变量的内容
在这个例子中,Animal
是一个类,$dog
就是一个Animal类的对象实例,它拥有类中定义的颜色属性和 speak
方法。