析构函数与构造函数的作用是相反的。析构函数是对象被注销时被调用的。虽然PHP在请求结束后会确保资源被释放,但析构函数还是有着很关键的数据。如释放特定资源、记录日志等。
PHP中使用__destruct()方法作为析构方法,格式例如以下:
訪问权限修饰符 function __destruct()
{
//函数体
}
比如:
定义类MyClass。在类中分别定义构造函数__construct()
、普通成员函数fun()
和析构函数__destruct()
,并通过该类的对象调用类中的fun()
方法。代码例如以下:
<?php
class MyClass
{
public function __construct()
{
echo "调用构造函数<br>";
}
public function fun1()
{
echo "调用普通成员函数1<br>";
}
public function fun2()
{
echo "调用普通成员函数2<br>";
}
public function __destruct()
{
echo "调用析构函数<br>";
}
}
$myClass = new MyClass();
$myClass->fun1();
$myClass->fun2();
执行结果为:
调用构造函数
调用普通成员函数1
调用普通成员函数2
调用析构函数
从上诉结果能够看出,从类的整个周期中,最先调用构造函数,然后是普通成员函数,最后是析构函数。