register_shutdown_function() 函數可實現當程式執行完成後執行的函數,其功能為可實現程式執行完成的後續操作,需要的朋友可以參考下
設定錯誤和異常處理三函數
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()函數捕獲異常,就能提供更加友善的錯誤展示方式,同時可以實現一些功能的後續操作,例如執行完成後的臨時資料清理,包括臨時檔案等。
可以這樣理解呼叫條件:
1、當頁面被使用者強制停止時
2、當程式碼運行逾時時
3、當PHP程式碼執行完成時,程式碼執行有例外與錯誤、警告
example1:
##
<?php function test() { echo "test()"; } register_shutdown_function("test"); echo "show: "; //将输出 show:test()example2:
<?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()example3:
#
<?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>"; //将输出 before hello f():hello
注意事項
1,register_shutdown_function()函數可重複調用,但執行的順序與註冊的順序相同2,如果在調用register_shutdown_function()函數之前有exit()函數調用,register_shutdown_function()函數將不能執行
3,PHP4後支持註冊函數參數傳遞
4,在某些服務端,如Apache,當前目錄在register_shutdown_function()函數中能夠改變
5,register_shutdown_function()函數執行在headers發送之後
以上是php中關於register_shutdown_function函數的深入理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!