error_reporting定義和用法
error_reporting() 設定 PHP 的報錯層級並返回當前層級。文法error_reporting(report_level)如果參數 report_level 未指定,當前報錯層級將被返回。
下面幾項是 report_level 可能的值,分14個等級供你自訂報錯的方式,有數字和字串兩種參數的寫法,中文說明對應如下:
數字 字串 說明
1 E_ERROR 致命的執行階段錯誤。 錯誤無法恢複過來。指令碼的執行被暫停
2 E_WARNING 非致命的執行階段錯誤。指令碼的執行不會停止
4 E_PARSE 編譯時間解析錯誤。解析錯誤應該只由分析器產生
8 E_NOTICE 已耗用時間的通知。該指令碼發現一些可能是一個錯誤,但也可能發生在正常運行一個指令碼
16 E_CORE_ERROR 在PHP啟動時的致命錯誤。這就好比一個在PHP核心的E_ERROR
32 E_CORE_WARNING 在PHP啟動時的非致命的錯誤。這就好比一個在PHP核心E_WARNING警告
64 E_COMPILE_ERROR 致命的編譯時間錯誤。這就像由Zend指令碼引擎產生了一個E_ERROR
128 E_COMPILE_WARNING 非致命的編譯時間錯誤。這就像由Zend指令碼引擎產生了一個E_WARNING警告
256 E_USER_ERROR 致命的使用者產生的錯誤。這就像由使用PHP函數trigger_error(程式員設定E_ERROR)
512 E_USER_WARNING 非致命的使用者產生的警告。這就像由使用PHP函數trigger_error(程式員設定的一個E_WARNING警告)
1024 E_USER_NOTICE 使用者產生的通知。這就像一個由使用PHP函數trigger_error(程式員一個E_NOTICE集)
2048 E_STRICT 已耗用時間的通知。
4096 E_RECOVERABLE_ERROR 捕捉致命的錯誤。這就像一個E_ERROR,但可以通過使用者定義的處理捕獲(又見set_error_handler())
8191 E_ALL來 所有的錯誤和警告,除非橫向E_STRICT(E_STRICT將是PHP 6.0中E_ALL來一部分的)其實還有個最牛叉的設定參數,無視一切錯誤警告請將參數設定為 0 。
比較實際具體的一點用法:
error_reporting(0);//禁用錯誤報表
error_reporting(E_ALL);//報告所有錯誤任意數目的以上選項都可以用“或”來串連(用 OR 或 |),這樣可以報告所有需要的各層級錯誤。
例如:
error_reporting(E_ERROR | E_WARNING | E_PARSE);//報告執行階段錯誤只要屏蔽notice錯誤,卻又不想屏蔽warning類的錯誤,
例如:
error_reporting(E_ALL & ~E_NOTICE);