首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP error_reporting 錯誤報告級別完整設定指南

     編輯:PHP 相關知識

PHP error_reporting 錯誤報告級別設定完整教學

error_reporting 指定在何種情況下,腳本中的錯誤(包含 E_NOTICE 注意、E_WARNING 警告、E_ERROR 致命錯誤等)會以錯誤報告形式輸出。正確設定錯誤報告級別,能有效協助開發除錯,也能避免敏感資訊洩露至生產環境。

設定方法一:修改 php.ini 設定檔(永久生效)

此方式修改後需重啟 Web 伺服器才生效,適用於全域設定。以 XAMPP 為例:

  1. 開啟 php.ini,尋找 error_reporting 預設值:
    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
    意義:報告所有錯誤,但排除 E_DEPRECATED 與 E_STRICT。
  2. 修改為常用設定:
    error_reporting = E_ALL & ~E_NOTICE
    意義:報告所有錯誤,但排除 E_NOTICE(如使用未定義變數)。此為開發環境最常用設定。
  3. 儲存並重啟 Apache 服務。

設定方法二:使用 error_reporting() 函數(即時生效,僅限當前腳本)

語法:int error_reporting([int $level])
參數建議使用常數形式,回傳值為當前生效的錯誤報告級別(整數)。

常見錯誤報告級別常數對照表

值常數說明
1E_ERROR導致腳本終止的致命錯誤
2E_WARNING執行時警告(腳本不終止)
4E_PARSE編譯時語法解析錯誤
8E_NOTICE執行時通知(可能導致錯誤)
32767E_ALL所有錯誤(不同 PHP 版本值可能不同)

常用設定範例

// 除了 E_NOTICE 外,報告所有錯誤
error_reporting(E_ALL ^ E_NOTICE);

// 僅報告致命錯誤
error_reporting(E_ERROR);

// 僅報告 E_ERROR、E_WARNING、E_NOTICE 三種
echo error_reporting(E_ERROR | E_WARNING | E_NOTICE);

重要提醒:display_errors 設定

php.ini 中 display_errors 預設為 On(顯示錯誤)。若設為 Off,將關閉所有錯誤提示輸出。生產環境建議設為 Off,並搭配錯誤日誌記錄。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved