1、語法錯誤
語法錯誤最常見,並且也容易修復,如:**中遺漏乙個分號,這類錯誤會阻止指令碼的執行。
2、執行時的錯誤:
這種錯誤一般不會阻止php指令碼的執行,但會阻止當前要做的事情,輸出一條錯誤,但php指令碼
會繼續執行。
3、邏輯錯誤:
這種錯誤最麻煩,既不阻止指令碼的執行,也不輸出錯誤訊息。
級別常量 錯誤值 錯誤報告描述
e_error 1 致命的執行時錯誤(阻止指令碼執行)
e_warning 2 執行時警告(非致命性錯誤)
e_parse 4 從語法中解析錯誤
e_notice 8 執行時注意訊息(可能是或可能不是乙個問題)
e_core_error 16 php啟動時初始化過程中的致命錯誤
e_core_warning 32 php啟動時初始化過程中的警告(非致命性錯)
e_compile_error 64 編譯時致命性錯
e_compile_warning 128 編譯時警告(非致命性錯)
e_user_error 256 使用者自定義的致命錯誤
e_user_warning 512 使用者自定義的警告(非致命性錯誤)
e_user_notice 1024 使用者自定義的提醒(經常是bug)
e_strict 2048 編碼標準化警告(建議如何修改以向前相容)
e_all 6143 所有的錯誤、警告和注意資訊
1、display_errors:是否開啟php輸出錯誤報告的級別。
值為:on (預設的輸出錯誤報告)、off (遮蔽所有的錯誤資訊)
-- 在php指令碼中可以呼叫ini_set( ) 函式,動態設定php.ini配置檔案。
-- 如:ini_set("display_errors", "on"); 顯示所有的錯誤資訊
2、error_reporting: 設定不同的錯誤級別報告
error_reporting = e_all & ~e_notice
-- 可以丟擲任何非注意的錯誤
error_reporting = e_error | e_parse | e_core_error
-- 只考慮致命的執行時錯誤,新解析錯誤和核心錯誤。
error_reporting = e_all & ~(e_user_error | e_user_warning | e_user_notice)
-- 報告使用者導致的錯誤之外的所有錯誤。
在php指令碼可以通過error_reporting() 函式動態設定錯誤報告級別。
如:error_reporting(e_all);
<?php
/*開啟php.ini中的display_errors指令,只有該指令開啟如果有錯誤報告才輸出*/
ini_set('display_errors', 1);
/*通過error_reporting()函式設定在本指令碼中,輸出所有級別的錯誤報告*/
error_reporting( e_all );
/*「注意(notice)」的報告,不會阻止指令碼的執行,並且可能不一定是乙個問題 */
gettype( $var ); //呼叫函式時提供的引數變數沒有在之前宣告
/*「警告(warning)」的報告,指示乙個問題,但是不會阻止指令碼的執行 */
gettype(); //呼叫函式時沒有提供必要的引數
/*「錯誤(error)」的報告,它會終止程式,指令碼不會再向下執行 */
get_type(); //呼叫乙個沒有被定義的函式
?>
PHP錯誤報告
級別常量 錯誤值錯誤報告描述 e error 致命的執行時錯誤 阻止指令碼執行 e warning 執行時警告 非致命性錯誤 e parse 從語法中解析錯誤 e notice 執行時注意訊息 可能是或可能不是乙個問題 e core error php啟動時初始化過程中的致命錯誤 e core wa...
PHP 設定錯誤報告
總結 php能夠在執行時動態設定是否顯示錯誤 顯示的錯誤級別。例子 不輸出錯誤報告 error reporting 0 輸出給定級別的錯誤 error reporting e error e warning e parse e notice 輸出除了e notice的他所有錯誤 error repo...
PHP錯誤報告級別
error reporting e all e notice 錯誤報告級別是位字段的疊加,推薦使用 e all e strict 1 e error 致命的執行時錯誤 2 e warning 執行時警告 非致命性錯誤 4 e parse 編譯時解析錯誤 8 e notice 執行時提醒 經常是 bu...