8
A
回答
14
让我们有一个类:
class A {
public function __construct(){
echo "Construct\n";
}
public function __destruct(){
echo "Destruct\n";
}
}
和测试代码:
$test = new A();
die("Dead\n"); // Will output Construct; dead; Destruct
$test = new A();
throw new Exception("Blah\n"); // Construct, Fatal error (no destruct)
$test = new A();
require_once('invalid_file.php'); // Construct, Fatal error (no destruct)
所以基本上:有情况(致命错误)时,析构函数将不会被调用。
啊,这问题有相同的答案,因为这一个:When will __destruct not be called in PHP?(+/-)
1
似乎有至少为使用的是Windows的一个问题:https://github.com/WoltLab/WCF/blob/ff7e6ed381f2ccab7f51220f97087921133b2237/wcfsetup/install/files/lib/system/WCF.class.php#L122
我不知道这是否仍然相关。
3
只要有对特定对象的更多引用,或在关机过程中调用它。该手册还指出,当脚本以exit()结尾时调用析构函数。
除了TimWolla指出的问题,我没有意识到任何PHP析构函数的问题。
相关问题
- 1. current_kernel_time()有多可靠?
- 2. DRb有多可靠?
- 3. __destruct可见性为PHP
- 4. .net定时器有多可靠?
- 5. Android的相对布局有多可靠?
- 6. unix域套接字有多可靠?
- 7. TextBox-Control的MaxLength属性有多可靠?
- 8. rails中的action_name方法有多可靠?
- 9. h2数据库有多可靠?
- 10. mySQL存储过程有多可靠?
- 11. 雅虎财务有多可靠?
- 12. netnamedpipebinding无限receiveTimeout有多可靠?
- 13. Moq中的Verify()有多可靠?
- 14. __destruct in __construct?
- 15. 可靠的“mouseenter”没有jQuery
- 16. Android多播工作非常不可靠
- 17. 如何使多个表单更可靠?
- 18. 面向Nack的可靠多播(NORM)
- 19. 亚马逊S3访问日志文件有多可靠?
- 20. visual studio 2013静态代码分析 - 它有多可靠?
- 21. Apache访问日志中记录的IP地址有多可靠?
- 22. Google的Geocode Web服务可靠性有多高
- 23. C++ - Zlib - 标题和无标题支持。有多可靠?
- 24. 连接不可靠的“git”有多安全?
- 25. WYSIWYG编辑器在div上使用contenteditable有多可靠?
- 26. 可靠的列数在表中有多个<tr>的
- 27. 使用gzip进行HTTP压缩有多可靠?
- 28. Xcode中的内存泄漏分析器 - 它有多可靠?
- 29. 存在磁盘错误的现代数据库有多可靠?
- 30. get_headers()用于检查网站是否在线有多可靠?
这可能有帮助:http://stackoverflow.com/questions/151660/php-destruct-method – stewe 2012-02-05 20:32:23
请注意,当脚本终止时,对象会以任意顺序销毁,因此如果将某些内容存储到持久缓存中,则需要访问一个预先初始化的“缓存处理程序对象”,这可能是一个问题... – jgivoni 2012-03-28 13:48:07
可能的重复[何时将\ _ \ _ destruct不在PHP中调用?](http://stackoverflow.com/questions/2385047/when-将破坏不被称为在PHP) – 2013-06-03 08:19:38