2013-02-14 87 views
9

如果我執行:die()以PHP結束會話嗎?

die(); 

將它又能有效調用

session_write_close(); 

由於模具停止整個過程?

+3

是的,它會像任何腳本終止一樣。對象析構函數也會運行;雖然我不確定任何auto_append_file – 2013-02-14 07:47:34

+1

沒有會話將不會結束。死();只會停止腳本的執行。 – ripa 2013-02-14 07:52:57

回答

11

號,你可以在PHP頁面上看到:http://www.php.net/manual/en/function.exit.php(因爲相當於出口

關機功能和對象的析構函數總是會被執行 即使退出被調用。

但是,session_write_close不是關閉功能。如果你「死」,它將不會運行。我建議你看看session_register_shutdown。這會將session_write_close()註冊爲關閉函數,在這種情況下,它將在「死亡」上運行。

更多信息:http://www.php.net/manual/en/function.session-register-shutdown.php

7

dieexit是等同的。從文檔:

終止腳本的執行。即使退出被調用,關閉函數和對象析構函數也會一直執行。

所以php仍然會進行清理程序。無論如何,如果您想在腳本關閉時執行一些自定義操作,您可以使用register_shutdown_function註冊關閉功能。

function shutdown() 
{ 
    //Some custom clean-up, logging and so on 
} 

register_shutdown_function('shutdown'); 

注:如果您註冊了自定義關機功能,當致命錯誤發生時也將被調用。