(PHP 4, PHP 5, PHP 7, PHP 8)
register_shutdown_function — 注冊一個會在php中止時執(zhí)行的函數(shù)
注冊一個 callback
,它會在腳本執(zhí)行完成或者 exit() 后被調(diào)用。
可以多次調(diào)用 register_shutdown_function() ,這些被注冊的回調(diào)會按照他們注冊時的順序被依次調(diào)用。 如果你在注冊的方法內(nèi)部調(diào)用 exit(), 那么所有處理會被中止,并且其他注冊的中止回調(diào)也不會再被調(diào)用。
callback
待注冊的中止回調(diào)
中止回調(diào)是作為請求的一部分被執(zhí)行的,因此可以在它們中進行輸出或者讀取輸出緩沖區(qū)。
parameter
可以通過傳入額外的參數(shù)來將參數(shù)傳給中止函數(shù)
...
沒有返回值。
如果傳入的callback不是可調(diào)用的,那么將會產(chǎn)生一個 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)上,可以在中止函數(shù)內(nèi)對腳本的工作目錄進行修改。
注意:
如果進程被信號SIGTERM或SIGKILL殺死,那么中止函數(shù)將不會被調(diào)用。盡管你無法中斷SIGKILL,但你可以通過pcntl_signal() 來捕獲SIGTERM,通過在其中調(diào)用exit()來進行一個正常的中止。