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