PHP中error-reporting函數用法

PHP中對錯誤的處理會用到error_reporting函數,看到最多的是error_reporting(E_ALL ^ E_NOTICE),這個是什麼意思呢?下面我們具體分析error_reporting函數。

PHP中error-reporting函數用法

定義用法

error_reporting() 設置 PHP 的報錯級別並返回當前級別。

語法

error_reporting(report_level)

如果參數 report_level 未指定,當前報錯級別將被返回。下面幾項是 report_level 可能的值:

常量描述
1E_ERROR致命的運行時錯誤。無法恢復的錯誤。停止執行腳本。
2E_WARNING非致命的運行時錯誤。腳本的執行並沒有停止。
4E_PARSE編譯時錯誤。
8E_NOTICE運行時提醒。
16E_CORE_ERROR在PHP啓動時的致命錯誤。這就好比一個在PHP核心的E_ERROR
32E_CORE_WARNING在PHP啓動時的非致命的錯誤。這就好比一個在PHP核心E_WARNING警告
64E_COMPILE_ERROR致命的編譯時錯誤。 這就像由Zend腳本引擎生成了一個E_ERROR
128E_COMPILE_WARNING非致命的編譯時錯誤,由Zend腳本引擎生成了一個E_WARNING警告
256E_USER_ERROR用戶自定義的致命錯誤
512E_USER_WARNING用戶自定義的警告(非致命性錯誤)
1024E_USER_NOTICE用戶自定義的提醒(經常是bug,也可能是有意的)
2048E_STRICT編碼標準化警告(建議如何修改以向前兼容)
4096E_RECOVERABLE_ERROR接近致命的運行時錯誤,若未被捕獲則視同E_ERROR
8191E_ALL除E_STRICT外的所有錯誤

PHP默認不開啓錯誤,所以你需要配置文件:

將 display_errors = Off 改爲 display_errors = On

另外還要配置錯誤級別,因爲 PHP 默認是顯示所有錯誤的,而有些無害的.提示我們不需要,所以設置如下:

將 error_reporting = E_ALL 改爲 error_reporting = E_ALL & ~E_NOTICE

在 PHP 代碼中運用例子:

提示:任意數目的以上選項都可以用“或”來連接(用 OR 或 |),這樣可以報告所有需要的各級別錯誤。例如,下面的代碼關閉了用戶自定義的錯誤和警告,執行了某些操作,然後恢復到原始的報錯級別:

瞭解 error_reporting 函數是如何使用的,再看 error_reporting(E_ALL ^ E_NOTICE) 這段代碼,意思是顯示除去 E_NOTICE 之外的所有錯誤信息。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!