1. 程式人生 > >PHP中如何設置error_reporting錯誤報告級別

PHP中如何設置error_reporting錯誤報告級別

誤報 未定義 查看 play 返回 ini repo 標識符 函數

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

設置錯誤報告級別的方法:

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三種錯誤

註意:配置文件php.ini中display_errors的默認值為On,代表顯示錯誤提示,如果設置為Off,就會關閉所有的錯誤提示。


PHP中如何設置error_reporting錯誤報告級別