与构造方法对应的就是析构方法,析构方法允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件、释放结果集等。
析构函数不能带有任何参数。
在 PHP 4中,尽管脚本执行结束后对象会自动撤销,但不太可能自定义这个清除过程。
随着PHP5中引入了析构函数,这种限制就不复存在了。
创建析构函数与创建其他方法一样,但析构函数函数名必须是 __destruct()
。实例如下:
class book
{
private $title;
private $isbn;
private $copies;
public function __construct($isbn)
{
echo "book class instance created.";
}
function __destruct()
{
echo "book class instance destroyed.";
}
}
$book = new book("1893115852");
程序运行结果为:
book class instance created.
book class instance destroyed.
脚本执行结束时,PHP会撤销内存中的所有对象。
因此,如果实例化的类和实例化时创建的信息都留在内存中,就不需要显式地声明析构函数。
但是,如果实例化时创建了不那么容易丢失的数据(如存储在数据库中),就应当在对象撤销时撤销这些数据,为此就需要创建一个定制的析构函数。
和构造方法一样,PHP 不会在本类中自动的调用父类的析构方法。要执行父类的析构方法,必须在子类的析构方法体中手动调用 parent::__destruct()
。试图在析构函数中抛出一个异常会导致致命错误。
暂无回复。