這篇文章主要介紹了PHP錯誤處理函數register_shutdown_function使用範例,需要的朋友可以參考下
當程式在線上運行時,如果遇到BUG,想不在前端輸出錯誤訊息,同時能及時郵件通知開發者,register_shutdown_function函數就可以派上用場了。
註冊一個會在腳本執行完成或 exit() 後被呼叫的函數。
可以多次呼叫 register_shutdown_function()
,這些被註冊的回呼會依照他們註冊時的順序被依序呼叫。 如果你在註冊的方法內部呼叫 exit(), 那麼所有處理會被中止,而其他註冊的中止回呼也不會再被呼叫。
register_shutdown_function
函數,當我們的腳本執行完成或意外死掉導致PHP執行即將關閉時,我們的這個函數將會被調用,可以配合error_get_last#使用,獲取錯誤訊息。
register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )
callable 回呼函數
#parameter 可以透過傳入額外的參數來將參數傳給中止函數
#DEMO1:
//关闭错误报告 error_reporting(0); //实现自己的错误信息展示 register_shutdown_function(‘myShutdown‘); $debug = true; function myShutdown() { global $debug; // 无论错误是否发生,这句都会执行 echo ‘ERROR‘ , ‘<br/>‘; if (!$debug) { $error = error_get_last(); // todo 可以在这里做邮件发送提醒 或 错误日志收集 var_export($error); } }
DEMO2
// 回到函数带参数:记录当前请求URL $current_page = htmlspecialchars($_SERVER[‘SCRIPT_NAME‘], ENT_QUOTES, ‘UTF-8‘); $current_page .= $_SERVER[‘QUERY_STRING‘] ? ‘?‘.htmlspecialchars($_SERVER[‘QUERY_STRING‘], ENT_QUOTES, ‘UTF-8‘) : ‘‘; register_shutdown_function(function ($current_page) { //todo send email or log }, $current_page); error_get_last() //错误信息查看:http://php.net/manual/zh/errorfunc.constants.php
以上是php register_shutdown_function函數使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!