php.ini中設定錯誤等級的方法:開啟“php.ini”設定文件,找到“error_reporting”項,將該項目的值設為需要的錯誤類型,例如“E_ALL & ~E_NOTICE”後,重啟web伺服器即可。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
PHP 中定義了許多不同等級的錯誤,如使用了未定義的變數會報出一個notice 等級的錯誤,實例化一個未定義的類別則會報出fatal error 等級的錯誤。
可在 php.ini 設定檔中使用error_reporting定義錯誤級別,在程式碼中也可使用error_reporting(E_ALL)等來定義錯誤等級。
php.ini設定錯誤等級的方法
這種方式設定error_reporting後,重啟web伺服器,就會永久生效。
這裡以xampp整合軟體包為例,開啟設定檔php.ini,查看錯誤報告等級error_reporting的預設值,如下:
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT
意思是報告所有的錯誤,但除了E_DEPRECATED和E_STRICT這兩種。
將error_reporting的值設定為需要的錯誤類型,範例修改為:
error_reporting=E_ALL & ~E_NOTICE
意思是報告所有的錯誤,但除了E_NOTICE這一種。這也是最常用的錯誤報告級別,它不會報告注意類別(如:使用了未定義的變數)的錯誤。
儲存,重啟web伺服器後生效。
PHP 中的錯誤類型如下表所示:
#值 | ##常數說明 | |
---|---|---|
E_ERROR | #致命的運行時錯誤,一般是不可恢復的情況,例如記憶體分配導致的問題,後果是導致腳本終止、不再繼續運作。 | |
E_WARNING | 執行階段警告(非致命錯誤),僅給出提示訊息,但是腳本不會終止執行。 | |
E_PARSE | 編譯時語法解析錯誤,僅由分析器產生。 | |
E_NOTICE | 執行階段通知,表示腳本遇到可能會表現為錯誤的情況,但是在可以正常運行的腳本裡面也可能會有類似的通知。 | |
E_CORE_ERROR | 在 PHP 初始化啟動過程中發生的致命錯誤,類似 E_ERROR,但是由 PHP 引擎核心產生的。 | |
E_CORE_WARNING | PHP 初始化啟動過程中發生的警告(非致命錯誤),類似E_WARNING ,但由PHP 引擎核心產生的。 | |
E_COMPILE_ERROR | 致命編譯時錯誤,類似 E_ERROR,但是是由 Zend 腳本引擎產生的。 | |
E_COMPILE_WARNING | 編譯時警告(非致命錯誤),類似 E_WARNING,但是由 Zend 腳本引擎產生的。 | |
E_USER_ERROR | 使用者產生的錯誤訊息,類似E_ERROR,但是是由使用者自己在程式碼中使用PHP 函數trigger_error() 來產生的。 | |
E_USER_WARNING | 使用者產生的警告訊息,類似E_WARNING,但是是由使用者自己在程式碼中使用PHP 函數trigger_error() 來產生的。 | |
E_USER_NOTICE | 使用者產生的通知訊息,類似E_NOTICE,但是是由使用者自己在程式碼中使用PHP 函數trigger_error() 來產生的。 | |
E_STRICT | #啟用 PHP 對程式碼的修改建議,以確保程式碼具有最佳的互通性和向前相容性。 | |
E_RECOVERABLE_ERROR | 可被捕捉的致命錯誤,表示發生了一個可能非常危險的錯誤,但還沒有導致PHP 引擎處於不穩定的狀態。如果該錯誤沒有被使用者自訂句柄捕獲,將成為一個 E_ERROR,從而使腳本終止運行。 | |
E_DEPRECATED | 執行階段通知,啟用後會對未來版本可能無法正常運作的程式碼給予警告。 | |
E_USER_DEPRECATED | 使用者產生的警告訊息,類似 E_DEPRECATED,但是由使用者自己在程式碼中使用PHP 函數trigger_error() 來產生的。 | |
E_ALL | #E_STRICT 除外的所有錯誤和警告訊息。 |
以上是php.ini中怎麼設定錯誤級別的詳細內容。更多資訊請關注PHP中文網其他相關文章!