__construct 是 PHP 的构造函数,在对象创建时自动调用,用于初始化属性、传递参数、加载资源等。它取代了旧式的类名同名构造函数,支持父类显式调用,是现代 PHP 推荐的标准做法。

__construct 方法确实是 PHP 中的构造函数。当一个对象被创建时,这个方法会自动调用,用于初始化对象的属性或执行必要的设置操作。
什么是构造函数
构造函数是一种特殊的方法,它在使用 new 关键字实例化类时自动运行。它的主要作用是完成对象的初始化工作,比如赋值属性、连接数据库、检查参数等。
PHP 支持在类中定义一个名为 __construct 的方法作为构造函数。
__construct 的写法
构造函数的定义格式如下:
立即学习“PHP免费学习笔记(深入)”;
class MyClass {
public function __construct($param = null) {
// 初始化代码
echo "对象已创建";
}
}
创建对象时:
$obj = new MyClass(); // 输出:对象已创建
构造函数可以接收参数,便于传入初始数据。
构造函数的作用
- 自动执行初始化逻辑,无需手动调用
- 为对象的属性设置默认值或传入值
- 可用于资源加载,如打开文件、建立数据库连接
- 支持依赖注入,提升代码可测试性和灵活性
与旧式构造函数的区别
在早期 PHP 版本中,构造函数是与类同名的方法。例如:
class Person {
public function Person() {
// 老式构造函数(PHP 4 风格)
}
}
现在推荐统一使用 __construct,它更标准且支持父类构造函数调用。
如果同时存在类名方法和 __construct,PHP 会优先调用 __construct。
父类构造函数的调用
在继承中,若子类定义了构造函数,不会自动调用父类构造函数,需手动调用:
class ParentClass {
public function __construct() {
echo "父类初始化";
}
}
class ChildClass extends ParentClass {
public function __construct() {
parent::__construct(); // 显式调用
echo "子类初始化";
}
}
基本上就这些。__construct 是现代 PHP 推荐使用的构造函数写法,功能强大且规范清晰。











