PHP錯誤處理函數register_shutdown_function

來源:互聯網
上載者:User

標籤:ror   日誌收集   llb   函數   開發   ref   style   erro   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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.