(PHP 4, PHP 5, PHP 7, PHP 8)
register_shutdown_function — 注冊一個(gè)會(huì )在php中止時(shí)執行的函數
注冊一個(gè) callback
,它會(huì )在腳本執行完成或者 exit() 后被調用。
可以多次調用 register_shutdown_function() ,這些被注冊的回調會(huì )按照他們注冊時(shí)的順序被依次調用。 如果你在注冊的方法內部調用 exit(), 那么所有處理會(huì )被中止,并且其他注冊的中止回調也不會(huì )再被調用。
callback
待注冊的中止回調
中止回調是作為請求的一部分被執行的,因此可以在它們中進(jìn)行輸出或者讀取輸出緩沖區。
parameter
可以通過(guò)傳入額外的參數來(lái)將參數傳給中止函數
...
沒(méi)有返回值。
如果傳入的callback不是可調用的,那么將會(huì )產(chǎn)生一個(gè) E_WARNING
級別的錯誤。
示例 #1 register_shutdown_function() 例子
<?php
function shutdown()
{
// This is our shutdown function, in
// here we can do any last operations
// before the script is complete.
echo 'Script executed with success', PHP_EOL;
}
register_shutdown_function('shutdown');
?>
注意:
在某些web server(如Apache)上,可以在中止函數內對腳本的工作目錄進(jìn)行修改。
注意:
如果進(jìn)程被信號SIGTERM或SIGKILL殺死,那么中止函數將不會(huì )被調用。盡管你無(wú)法中斷SIGKILL,但你可以通過(guò)pcntl_signal() 來(lái)捕獲SIGTERM,通過(guò)在其中調用exit()來(lái)進(jìn)行一個(gè)正常的中止。