首頁 >後端開發 >php教程 >PHP錯誤處理函數register_shutdown_function使用方法

PHP錯誤處理函數register_shutdown_function使用方法

墨辰丷
墨辰丷原創
2018-05-21 09:25:581910瀏覽

這篇文章主要介紹了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()

相關推薦:

PHP register_shutdown_function函數的解析

################php register###_globals參數OFF與ON的差異 ################分享下PHP register_globals 值為on與off的理解_PHP教學############ ##################

以上是PHP錯誤處理函數register_shutdown_function使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn