构造函数是PHP中用于对象初始化的特殊方法,使用__construct定义,创建对象时自动执行,可传递参数进行属性赋值、依赖注入或资源加载,如数据库连接;子类需手动调用parent::__construct继承父类初始化逻辑。
在PHP中,构造函数是一个特殊的方法,用于在创建对象时自动执行初始化操作。正确使用构造函数可以让对象在实例化时就具备必要的属性或完成特定的准备工作。
构造函数是在类中定义的一个特殊方法,当通过new关键字创建对象时,它会自动被调用。PHP中构造函数的名称是__construct(注意是两个下划线)。
它不需要手动调用,系统会在对象创建时自动触发,适合用来设置默认值、连接数据库、检查配置等初始化工作。
在类中使用__construct作为方法名来定义构造函数。它可以接受参数,也可以不带参数。
基本语法:
class MyClass {
public function __construct($param = null) {
// 初始化代码
}
}
示例:定义一个带参数的构造函数
class Person {
private $name;
public function __construct($name) {
$this->name = $name;
echo "Hello, I'm " . $this->name;
}
}
// 创建对象时传递参数
$p = new Person("Alice"); // 输出: Hello, I'm Alice
构造函数常用于以下场景:
示例:数据库类自动连接
class Database {
private $conn;
public function _
_construct($host, $user, $pass, $dbname) {
$this->conn = mysqli_connect($host, $user, $pass, $dbname);
if (!$this->conn) {
die("Connection failed");
}
echo "Connected successfully";
}
}
$db = new Database("localhost", "root", "", "testdb");
使用构造函数时要注意以下几点:
子类继承示例:
class Student extends Person {
private $school;
public function __construct($name, $school) {
parent::__construct($name); // 调用父类构造函数
$this->school = $school;
}
}
基本上就这些。只要记住__construct会在new的时候自动运行,适合做初始化工作,注意参数传递和父类调用即可。