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

PHP 運行時動態開關錯誤顯示(無需修改 php.ini 權限)

     編輯:PHP 綜合知識

場景

共享主機、雲函數、無服務器環境無法修改 php.ini,需在代碼中控制錯誤報告級別與顯示開關。

通用代碼(放在腳本最頂部)

<?php
// 開啟所有錯誤報告並顯示
ini_set('display_errors', '1');
error_reporting(E_ALL | E_STRICT);

// 關閉顯示(生產環境)
// ini_set('display_errors', '0');
// error_reporting(0); // 或 E_ALL & ~E_NOTICE & ~E_DEPRECATED
?>

Windows 系統 php.ini 修改參考(有權限時)

; php.ini
display_errors = On   ; 開啟顯示
display_errors = Off  ; 關閉顯示

; 錯誤報告級別
error_reporting = E_ALL | E_STRICT  ; 開發環境推薦
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED ; 生產常用

; 注意:若 php.ini 複製到 Windows 目錄,需同步修改兩處

Linux (Ubuntu/Apache) 完整配置流程

  1. 修改 php.ini(通常在 /etc/php/8.x/apache2/php.ini)
    display_errors = On
    error_reporting = E_ALL | E_STRICT
  2. 修改 Apache 配置(/etc/apache2/conf-enabled/php-errors.conf 或 httpd.conf)
    php_flag display_errors on
    php_value error_reporting 32767  ; E_ALL | E_STRICT 的數值
  3. 重啟 Apache
    sudo systemctl restart apache2 或 sudo /etc/init.d/apache2 restart

常用錯誤級別常量對照表

常量數值含義
E_ERROR1致命運行時錯誤
E_WARNING2運行時警告
E_NOTICE8運行時通知(如未定義變量)
E_DEPRECATED8192棄用功能警告
E_STRICT2048代碼標準化建議
E_ALL32767所有錯誤(PHP 8.1+ 為 32767)

最佳實踐

  • 開發環境:E_ALL | E_STRICT + display_errors=On
  • 生產環境:E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT + display_errors=Off + log_errors=On + error_log=/var/log/php_errors.log
  • 框架入口文件統一設置,避免分散在業務代碼中。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved