錯誤報表層級:指定了在什麼情況下,指令碼代碼中的錯誤(這裡的錯誤是廣義的錯誤,包括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錯誤報表層級,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。