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中文網其他相關文章!