PHP知识、源码、教程、框架、程序分享! -- PHP社区 关于我们 联系我们 联系电话 联系QQ

PHP编程语言析构函数

发表时间:2013-09-22 点击:

[本文摘要]:PHP编程 语言析构函数 析构 函数 与 构造函数 的作用是相反的。它是在 对象 被注销的时候调用的(例如,没有任何变量引用对象)。因为 PHP 会在请求结束后确保所有的资源都得到释放...

PHP编程语言析构函数

析构函数构造函数的作用是相反的。它是在对象被注销的时候调用的(例如,没有任何变量引用对象)。因为PHP会在请求结束后确保所有的资源都得到释放,所以析构函数显得并不是很重要。但是,它们在执行一些事件时还是很有用的,例如清空一个资源或者在对象注销的时候记录日志信息。有两种情况会调用析构函数:在执行你的脚本的时候,当一个对象所有的引用都被注销,或者当脚本运行完毕而PHP结束请求。第二种方式比较巧妙,因为第一种方法中你依赖的一些对象可能已经调用析构函数了,所以它们已经无法访问了。所以,第一种方法要慎用,而且不要在你的析构函数中引用其他对象。

定义一个析构函数非常简单,就是在类中增加一个名字为__destruct()的方法:

class MyClass {
	function _destruct()
	{
	  print "An object of type Myclass is being destroyad\n";
	}
}
$obj = new MyClass;
$obj = NULL;

这个脚本打印出

An object of type MyClass is being dEstroyed

在这个例子中,当$obj= NULL;被执行的时候,该对象的唯一一个句柄会被注销,而且调用析构函数后对象本身就被注销了。但是就算没有最后一行代码,当请求结束,执行引擎关闭的时候析构函数也会被调用的。

注意:PHP并不保证析构函数被调用的准确时间点,所以它可能在最后一个引用的对象被释放后几行语句时才调用。因此,你需要注意这个问题以免在编写你的应用的时候发生意外。

版权声明:本文系技术人员研究整理的智慧结晶,转载勿用于商业用途,并保留本文链接,侵权必究!

本文链接:http://php.aixc.cn/phpzs/phphanshu/299.html

声明:本站技术及源码均为原创,转载请勿用于商业用途,并注明出处及原文链接,侵权必究。