這篇文章主要介紹了PHP中error_reporting函數用法詳細介紹的相關資料,需要的朋友可以參考下
PHP中error_reporting函數用法詳細介紹
PHP中對錯誤的處理會用到error_reporting函數,看到最多的是error_reporting(E_ALL ^ E_NOTICE),這個是什麼意思呢?下面我們具體分析error_reporting函數。
定義用法
error_reporting() 設定 PHP 的報錯層級並返回當前層級。
文法
error_reporting(report_level)
如果參數 report_level 未指定,當前報錯層級將被返回。下面幾項是 report_level 可能的值:
| 值 |
常量 |
描述 |
| 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 |
使用者自訂的致命錯誤 |
| 512 |
E_USER_WARNING |
使用者自訂的警告(非致命性錯誤) |
| 1024 |
E_USER_NOTICE |
使用者自訂的提醒(經常是bug,也可能是有意的) |
| 2048 |
E_STRICT |
編碼通訊協定化警告(建議如何修改以向前相容) |
| 4096 |
E_RECOVERABLE_ERROR |
接近致命的執行階段錯誤,若未被捕獲則視同E_ERROR |
| 8191 |
E_ALL |
除E_STRICT外的所有錯誤 |
PHP預設不開啟錯誤,所以你需要配置php.ini檔案:
將 display_errors = Off 改為 display_errors = On
另外還要配置錯誤層級,因為 PHP 預設是顯示所有錯誤的,而有些無害的提示我們不需要,所以設定如下:
將 error_reporting = E_ALL 改為 error_reporting = E_ALL & ~E_NOTICE
在 PHP 代碼中運用例子:
提示:任意數目的以上選項都可以用“或”來串連(用 OR 或 |),這樣可以報告所有需要的各層級錯誤。例如,下面的代碼關閉了使用者自訂的錯誤和警告,執行了某些操作,然後恢複到原始的報錯層級:
<?php //禁用錯誤報表 error_reporting(0); //報告執行階段錯誤 error_reporting(E_ERROR | E_WARNING | E_PARSE); //報告所有錯誤 error_reporting(E_ALL); ?>
瞭解 error_reporting 函數是如何使用的,再看 error_reporting(E_ALL ^ E_NOTICE) 這段代碼,意思是顯示除去 E_NOTICE 之外的所有錯誤資訊。