在php編程過程中,大家一定會遇到或多或少的錯誤提醒,也正是這些錯誤提示,指引我們編寫更加乾淨的代碼,今天先寫出我們主要列出的錯誤類型,先挖坑,寫關於php錯誤與異常的相關知識,慢慢填坑。
-
Deprecated最低層級錯誤,程式繼續執行
-
Notice 通知層級的錯誤 如直接使用未聲明變數,程式繼續執行
-
Warning 警告層級的錯誤,可能得不到想要的結果
-
Fatal error 致命層級錯誤致命層級錯誤,程式不往下執行
-
parse error 文法解析錯誤,最進階別錯誤,連其他錯誤資訊也不呈現出來
-
E_USER_相關錯誤 使用者佈建的相關錯誤
利用trigger_error()函數設定一個使用者層級的 error/warning/notice 資訊
如何設定錯誤層級?
修改報錯層級:
1: php.ini裡修改error_reporting 選項
2: 可以在php頁面裡,用error_reporting()函數來修改
錯誤層級用2進位的值來表示的: 1111 1111 1111 111從左至右,每位上的1,代表一種錯誤層級
fatal error致命錯誤: 0000 0000 0000 001 開啟 1
warning 警告錯誤 : 0000 0000 0000 010 開啟 2
NOTICE 警告 : 0000 0000 0001 000 開啟 8
eg:
都報出來: error_reporting(11);
不要報NOTICE: error_reporting(3);
任何錯誤都不報: error_reporting(0);
系統為我們把各個層級的值,用系統常量代替了.
E_ERROR 1
E_WARNING 2
E_NOTICE 8
報所有錯誤: error_reporting(E_ALL);
除了NOTICE,其他都報: error_reporting(E_ALL & ~E_NOTICE);
在開發中,報錯層級高一點,在上線產品中,報錯層級要低:+
代碼如下:
define('DEBUG',true); // 在開發時,聲明一個DEBUG模式 if(defined('DEBUG')) { //檢測到處於開發模式 error_reporting(E_ALL); } else { error_reporting(0); }