修改方法:1、php.ini中,找出並修改「error_reporting」項目的值,然後重新啟動web伺服器即可。 2.在PHP檔案中,使用「error_reporting(level)」語句修改,參數level用來規定目前腳本的錯誤報告等級。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
錯誤報告等級:指定了在什麼情況下,腳本程式碼中的錯誤(這裡的錯誤是廣義的錯誤,包括E_NOTICE注意、E_WARNING警告、E_ERROR致命錯誤等)會以錯誤報告的形式輸出。
php修改錯誤等級的方法
#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()函數呼叫的後面區域。
error_reporting(level)
level參數規定目前腳本的錯誤報告級別,可省略。值數字和常數名都能接受,但是,考慮未來的 PHP 版本的兼容性,建議使用常數名。
level參數可以是整數或對應的常數標識符,建議使用常數的形式。傳回值為目前位置處起作用的錯誤報告等級的值(整數值)。
下面列舉一些錯誤報告等級:
值 | 常數 | ##描述|
---|---|---|
##1 | E_ERROR | 運行時致命的錯誤。不能修復的錯誤。停止執行腳本。 |
2 | E_WARNING | 執行階段非致命的錯誤。沒有停止執行腳本。 |
4 | E_PARSE | 編譯時的解析錯誤。解析錯誤應該只由解析器產生。 |
8 | E_NOTICE | 執行時的通知。腳本發現可能是一個錯誤,但也可能在正常運行腳本時發生。 |
16 | E_CORE_ERROR | #PHP 啟動時的致命錯誤。這就如同 PHP 核心的 E_ERROR。 |
32 | E_CORE_WARNING | #PHP 啟動時的非致命錯誤。這就如同 PHP 核心的 E_WARNING。 |
64 | E_COMPILE_ERROR | 編譯時致命的錯誤。這就如同由 Zend 腳本引擎產生的 E_ERROR。 |
128 | E_COMPILE_WARNING | 編譯時非致命的錯誤。這就如同由 Zend 腳本引擎產生的 E_WARNING。 |
256 | E_USER_ERROR | 使用者產生的致命錯誤。這就像是由程式設計師使用 PHP 函數 trigger_error() 產生的 E_ERROR。 |
512 | E_USER_WARNING | 使用者產生的非致命錯誤。這就如同由程式設計師使用 PHP 函數 trigger_error() 產生的 E_WARNING。 |
1024 | E_USER_NOTICE | 用戶產生的通知。這就如同由程式設計師使用 PHP 函數 trigger_error() 產生的 E_NOTICE。 |
2048 | E_STRICT | #執行時的通知。 PHP 建議您改變程式碼,以提高程式碼的互用性和相容性。 |
4096 | E_RECOVERABLE_ERROR | 可捕獲的致命錯誤。這就如同一個可以由使用者定義的句柄捕獲的 E_ERROR(請參閱 set_error_handler())。 |
8191 | E_ALL | 所有的錯誤和警告的級別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 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,就会关闭所有的错误提示。
使用 error_reporting(0)
或者在函数前面加 @
,可以抑制错误输出,以防止错误消息泄露敏感信息。
推荐学习:《PHP视频教程》
以上是php怎麼修改報錯級別的詳細內容。更多資訊請關注PHP中文網其他相關文章!