共享主機、雲函數、無服務器環境無法修改 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
?>
; 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 目錄,需同步修改兩處
/etc/php/8.x/apache2/php.ini)display_errors = Onerror_reporting = E_ALL | E_STRICT/etc/apache2/conf-enabled/php-errors.conf 或 httpd.conf)php_flag display_errors on
php_value error_reporting 32767 ; E_ALL | E_STRICT 的數值
sudo systemctl restart apache2 或 sudo /etc/init.d/apache2 restart| 常量 | 數值 | 含義 |
|---|---|---|
E_ERROR | 1 | 致命運行時錯誤 |
E_WARNING | 2 | 運行時警告 |
E_NOTICE | 8 | 運行時通知(如未定義變量) |
E_DEPRECATED | 8192 | 棄用功能警告 |
E_STRICT | 2048 | 代碼標準化建議 |
E_ALL | 32767 | 所有錯誤(PHP 8.1+ 為 32767) |
E_ALL | E_STRICT + display_errors=OnE_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT + display_errors=Off + log_errors=On + error_log=/var/log/php_errors.log