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

PHP 錯誤報告級別配置最佳實踐:關閉 Warning 與 Notice 的正確姿勢

     編輯:PHP 相關知識

理解 error_reporting 常量

PHP 內置錯誤級別常量(部分):

  • E_ERROR (1) - 致命錯誤
  • E_WARNING (2) - 警告,不中斷執行
  • E_PARSE (4) - 編譯時解析錯誤
  • E_NOTICE (8) - 運行時提示(如變量未初始化)
  • E_ALL (2047) - 所有錯誤與提示
  • E_STRICT (2048) - 代碼標準化建議

數值 7 = 1+2+4,即僅顯示 E_ERROR、E_WARNING、E_PARSE。

生產環境推薦配置

; php.ini
display_errors = Off
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
log_errors = On
error_log = /var/log/php_errors.log

關鍵點:

  1. display_errors = Off 禁止頁面輸出錯誤,避免洩露敏感信息
  2. error_reporting 排除 Notice、Strict、Deprecated,保留關鍵錯誤
  3. 務必開啟 log_errors 並指定可寫的 error_log 路徑,否則 display_errors = Off 可能失效(錯誤仍輸出到標準輸出)

常見坑:display_errors 失效

若 log_errors = On 但 error_log 未設置或無寫入權限,PHP 會回退輸出到瀏覽器,導致 display_errors = Off 形同虛設。解決:關閉 log_errors 或修復日誌路徑權限。

運行時動態設置

error_reporting(E_ALL & ~E_NOTICE); // 僅影響當前腳本
ini_set('display_errors', '0');
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved