這篇文章主要介紹了PHP register_shutdown_function()函數的使用示例,當我們的腳本執行完成或者意外死掉導致 php 執行即將關閉時,register_shutdown_function()這個函數會被調用,需要的朋友可以參考下
通過 register_shutdown_function 方法,可以讓我們設置一個當執行關閉時可以被調用的另一個函數。
也就是說,當我們的腳本執行完成或者意外死掉導致 php 執行即將關閉時,我們的這個函數會被調用。
【使用場景】
① 頁面被(用戶)強制停止
② 程序代碼意外終止或超時
③ php4 中沒有析構函數,可以使用該函數模擬析構函數
shutdown.php
代碼如下:
header("content-type:text/html;charset=utf-8");
class Shutdown{
public function endScript(){
if(error_get_last()){
echo '
';
print_r(error_get_last());
echo '
';
}
file_put_contents('D:practisephpErrorerror.txt', 'this is a test');
die('腳本結束');
}
}
register_shutdown_function(array(new Shutdown(), 'endScript'));
//錯誤測試
echo md6();
執行,輸出:
代碼如下:
( ! ) Fatal error: Call to undefined function md6() in D:practisephpErrorshutdown.php on line 18
Array
(
[type] => 1
[message] => Call to undefined function md6()
[file] => D:practisephpErrorshutdown.php
[line] => 18
)
腳本結束
代碼如下:
D:practisephpErrorerror.txt:
this is a test
注意:register_shutdown_function 方法是從內存中調用的,因此在使用 file_put_contents 方法時,第一個參數一定要使用絕對路徑。