首頁 > 後端開發 > php教程 > register_shutdown_function 函數詳解

register_shutdown_function 函數詳解

步履不停
發布: 2023-04-06 20:32:01
原創
3324 人瀏覽過

register_shutdown_function 函數詳解

php開發測試及線上的時候可以根據不同情況設定錯誤和異常處理需要用到有

#設定錯誤與異常處理三函數

register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数
set_error_handler(array(‘Debug’,'appError’)); // 设置一个用户定义的错误处理函数
set_exception_handler(array(‘Debug’,'appException’)); //自定义异常处理。
登入後複製

下面講一下register_shutdown_function() 函數.

函數 :register_shutdown_function() 函數可實現當程式執行完成後執行的函數,其功能為可實現程式執行完成的後續操作。程式在運作的時候可能存在執行逾時,或強制關閉等情況,但這種情況下預設的提示是非常不友善的,如果使用register_shutdown_function()函數捕獲異常,就能提供更加友善的錯誤展示方式,同時可以實現一些功能的後續操作,例如執行完成後的臨時資料清理,包括臨時檔案等。

可以這樣理解呼叫條件:

1、當頁面被使用者強制停止時

2、當程式碼運行逾時時

3、當PHP程式碼執行完成時,程式碼執行存在異常和錯誤、警告

實例說明

1. 一個簡介的例子, 呼叫一個函數

<?php
    function test() {
        echo "test()";
    }
    register_shutdown_function(array("test"));
    echo "show: ";
 ?>
登入後複製

這個範例輸出  

show: test()
登入後複製

這個函數的功能就是在退出腳本前,呼叫已經註冊的函數,並執行這個函數。

2. 在類別中用一個陣列作為一個參數

<?php
class ClassDemo {
    public function __construct() {
        register_shutdown_function(array($this, "f"));
    }
 
    public function f() {
        echo "f()";
    }
}
 
$demo = new ClassDemo();
echo "before </br>";
?>
登入後複製

  輸出:

before
f()
登入後複製

3. 有參數的範例:

<?php
function f($str) {
        echo $str."<br>";
}
  
register_shutdown_function("f","hello");
 
class ClassDemo {
    public function __construct() {
        register_shutdown_function(array($this, "f"),"hello");
    }
 
    public function f($str) {
        echo "f():".$str;
    }
}
 
$demo = new ClassDemo();
echo "before </br>";  
?>
登入後複製

#注意事項

1,register_shutdown_function()函數可重複呼叫,但執行的順序與註冊的順序相同
#2 ,如果在呼叫register_shutdown_function()函數之前有exit()函數呼叫,register_shutdown_function()函數將無法執行
#3,PHP4後支援註冊函數參數傳遞PHP影片教學
4,在某些服務端,如Apache,目前目錄在register_shutdown_function()函式中能夠改變
#5,register_shutdown_function ()函數執行在headers發送之後

以上是register_shutdown_function 函數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板