构造函数和析构函数
构造函数(Constructor)和析构函数(Destructor)是 PHP 类中的特殊方法,用于在对象创建和销毁时执行特定的操作。
构造函数(Constructor)
构造函数是一个在对象实例化时自动调用的方法。它通常用于执行对象的初始化操作,例如初始化对象的属性或执行必要的设置。
class MyClass {
public $name;
// 构造函数
public function __construct($name) {
echo "Constructor called.\n";
$this->name = $name;
}
public function sayHello() {
echo "Hello, " . $this->name . "!\n";
}
}
$obj = new MyClass("Alice"); // 输出:Constructor called.
$obj->sayHello(); // 输出:Hello, Alice!
构造函数在 PHP 中的命名必须与类名相同,且不接受访问修饰符。在 PHP 7.0 之后,尽管可以在类中显式声明构造函数的访问修饰符(private、protected 或 public),但这些修饰符并不会影响构造函数的可见性。所以,无论是否显式声明构造函数的访问修饰符,它都将是公共的,即可在类的外部和内部调用。构造函数在对象实例化时始终会被调用,无法被私有化或受保护。
析构函数(Destructor)
析构函数是一个在对象被销毁时自动调用的方法。它通常用于执行一些清理操作,例如关闭数据库连接、释放资源等。
class MyClass {
public $name;
// 构造函数
public function __construct($name) {
echo "Constructor called.\n";
$this->name = $name;
}
// 析构函数
public function __destruct() {
echo "Destructor called.\n";
}
public function sayHello() {
echo "Hello, " . $this->name . "!\n";
}
}
$obj = new MyClass("Alice"); // 输出:Constructor called.
$obj->sayHello(); // 输出:Hello, Alice!
unset($obj); // 手动销毁对象
// 输出:Destructor called.
析构函数的名称是 __destruct,在对象被销毁时自动调用。它不接受任何参数,也不能手动调用。
文章评论