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. 「>」有多可靠?
- 2. window.location.hostname有多可靠?
- 3. current_kernel_time()有多可靠?
- 4. DRb有多可靠?
- 5. SVN:衝突有多可靠?
- 6. NDB的put()有多可靠?
- 7. JMS回滾有多可靠?
- 8. TCP連接有多可靠?
- 9. 簡單數字編輯的可靠性有多可靠?
- 10. 沒有可靠單播的可靠多播算法?
- 11. __destruct可見性爲PHP
- 12. -B文件測試有多可靠?
- 13. unix域套接字有多可靠?
- 14. .net定時器有多可靠?
- 15. Postgres數組的排序有多可靠?
- 16. rails中的action_name方法有多可靠?
- 17. netnamedpipebinding無限receiveTimeout有多可靠?
- 18. Moq中的Verify()有多可靠?
- 19. TextBox-Control的MaxLength屬性有多可靠?
- 20. Android的相對佈局有多可靠?
- 21. php函數get_browser有多可靠?
- 22. h2數據庫有多可靠?
- 23. mySQL存儲過程有多可靠?
- 24. 雅虎財務有多可靠?
- 25. shmop/PHP共享內存有多可靠?
- 26. __destruct in __construct?
- 27. PDO :: rollBack或__destruct
- 28. 可靠的「mouseenter」沒有jQuery
- 29. UILabel沒有可靠包裝
- 30. iBeacon靠近不可靠
這可能有幫助: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