类的析构函数

服务器君一共花费了13.961 ms进行了6次数据库查询,努力地为您提供了提供了这个页面。

与构造方法对应的就是析构方法,析构方法允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件、释放结果集等。析构函数不能带有任何参数。

在PHP4中,尽管脚本执行结束后对象会自动撤销,但不太可能自定义这个清除过程。随着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()。试图在析构函数中抛出一个异常会导致致命错误。

了解更多:析构函数与PHP的垃圾回收机制

Creative Commons License

本文仅供自己学习与收藏之用,请勿转载,请勿用作其它用途(如商业目的等)。 原文链接:http://www.nowamagic.net/librarys/posts/php/20