PHP error_reporting() 錯誤控制函數功能詳解

錯誤報告級別:指定了在什麼狀況下,腳本代碼中的錯誤(這裏的錯誤是廣義的錯誤,包括E_NOTICE注意、E_WARNING警告、E_ERROR致命錯誤等)會以錯誤報告的形式輸出。php

設置錯誤報告級別的方法:
1. 修改PHP的配置文件php.ini
這種方式設置error_reporting後,重啓web服務器,就會永久生效。
這裏以xampp集成軟件包爲例,打開配置文件php.ini,查看錯誤報告級別error_reporting的默認值,以下:
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT
意思是報告全部的錯誤,但除了E_DEPRECATED和E_STRICT這兩種。
將其修改成:
error_reporting=E_ALL &  ~E_NOTICE
意思是報告全部的錯誤,但除了E_NOTICE這一種。這也是最經常使用的錯誤報告級別,它不會報告注意類(如:使用了未定義的變量)的錯誤。
保存,重啓web服務器後生效。
2. 使用error_reporting()函數
這種方式設置後,能夠當即生效。但僅限於在當前腳本中的error_reporting()函數調用的後面區域。
int error_reporting ([ int  $level ] )
參數能夠是整型或對應的常量標識符,推薦使用常量的形式。返回值爲當前位置處起做用的錯誤報告級別的值(整型值)。
下面列舉一些錯誤報告級別:
值          常量                     說明
1           E_ERROR             報告致使腳本終止運行的致命錯誤
2           E_WARNING       報告運行時的警告類錯誤(腳本不會終止運行)
4           E_PARSE             報告編譯時的語法解析錯誤
8           E_NOTICE           報告通知類錯誤,腳本可能會產生錯誤
32767   E_ALL                  報告全部的可能出現的錯誤(不一樣的PHP版本,常量E_ALL的值也可能不一樣)
 
error_reporting(E_ALL ^ E_NOTICE);    // 除了E_NOTICE以外,報告全部的錯誤
error_reporting(E_ERROR);       // 只報告致命錯誤
echo error_reporting(E_ERROR | E_WARNING | E_NOTICE);   // 只報告E_ERROR、E_WARNING 和 E_NOTICE三種錯誤
相關文章
相關標籤/搜索