這篇文章主要介紹了關於PHP捕捉錯誤的方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
PHP捕捉錯誤
error_reporting(0);
set_error_handler('errorHandler');
register_shutdown_function('fatalErrorHandler');
/** * @param int $err_no 錯誤碼 * @param string $err_msg 錯誤資訊 * @param string $err_file 錯誤檔案 * @param int $err_line 錯誤行號 * @return string */function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0){ $log = [ '['.date('Y-m-d h-i-s').']', '|', $err_no, '|', $err_msg, '|', $err_file, '|', $err_line ]; $log_path = './test.txt'; error_log(implode(' ',$log)."\r\n",3, $log_path);}
function fatalErrorHandler() { $e = error_get_last(); var_export($e); switch ($e['type']) { case 1: errorHandler($e['type'], $e['message'], $e['file'], $e['line']); break; }}
class DemoClass_1{ public function index() { //這裡發生一個警告錯誤,出發errorHandler echo $undefinedVarible; }}
$demo_1 = new DemoClass_1();$demo_1->index();
$demo_2 = new DemoClass_2();$demo_2->index();
開啟test.txt後 輸出:
[2018-06-12 05-49-11] | 8 | Undefined variable: undefinedVarible | /Users/darry/htdocs/test.php | 57[2018-06-12 05-49-11] | 1 | Uncaught Error: Class 'DemoClass_2' not found in /Users/darry/htdocs/test.php:67Stack trace:#0 {main} thrown | /Users/darry/htdocs/test.php | 67
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!
相關推薦:
Nginx SSL快速雙向認證配置(指令碼)
PHP資料結構基礎之遞迴
關於thinkphp行為的使用