PHP的錯誤級別
php 中的錯誤級別有:
1 |
E_ERROR (integer)
|
致命的執行時錯誤。這類錯誤一般是不可恢復的情況,例如記憶體分配導致的問題。後果是導致指令碼終止不再繼續執行。 | |
2 |
E_WARNING (integer)
|
執行時警告 (非致命錯誤)。僅給出提示資訊,但是指令碼不會終止執行。 | |
4 |
E_PARSE (integer)
|
編譯時語法解析錯誤。解析錯誤僅僅由分析器產生。 | |
8 |
E_NOTICE (integer)
|
執行時通知。表示指令碼遇到可能會表現為錯誤的情況,但是在可以正常執行的指令碼里面也可能會有類似的通知。 | |
16 |
E_CORE_ERROR (integer) |
在PHP初始化啟動過程中發生的致命錯誤。該錯誤類似E_ERROR ,但是是由PHP引擎核心產生的。 |
since PHP 4 |
32 |
E_CORE_WARNING (integer) |
PHP初始化啟動過程中發生的警告 (非致命錯誤) 。類似 E_WARNING ,但是是由PHP引擎核心產生的。 |
since PHP 4 |
64 |
E_COMPILE_ERROR (integer) |
致命編譯時錯誤。類似E_ERROR , 但是是由Zend指令碼引擎產生的。 |
since PHP 4 |
128 |
E_COMPILE_WARNING (integer) |
編譯時警告 (非致命錯誤)。類似 E_WARNING ,但是是由Zend指令碼引擎產生的。 |
since PHP 4 |
256 |
E_USER_ERROR (integer) |
使用者產生的錯誤資訊。類似 E_ERROR , 但是是由使用者自己在程式碼中使用PHP函式 trigger_error()來產生的。 |
since PHP 4 |
512 |
E_USER_WARNING (integer) |
使用者產生的警告資訊。類似 E_WARNING , 但是是由使用者自己在程式碼中使用PHP函式 trigger_error()來產生的。 |
since PHP 4 |
1024 |
E_USER_NOTICE (integer) |
使用者產生的通知資訊。類似 E_NOTICE , 但是是由使用者自己在程式碼中使用PHP函式 trigger_error()來產生的。 |
since PHP 4 |
2048 |
E_STRICT (integer)
|
啟用 PHP 對程式碼的修改建議,以確保程式碼具有最佳的互操作性和向前相容性。 | since PHP 5 |
4096 |
E_RECOVERABLE_ERROR (integer) |
可被捕捉的致命錯誤。 它表示發生了一個可能非常危險的錯誤,但是還沒有導致PHP引擎處於不穩定的狀態。 如果該錯誤沒有被使用者自定義控制程式碼捕獲 (參見 set_error_handler()),將成為一個 E_ERROR 從而指令碼會終止執行。 |
since PHP 5.2.0 |
8192 |
E_DEPRECATED (integer)
|
執行時通知。啟用後將會對在未來版本中可能無法正常工作的程式碼給出警告。 | since PHP 5.3.0 |
16384 |
E_USER_DEPRECATED (integer) |
使用者產少的警告資訊。 類似 E_DEPRECATED , 但是是由使用者自己在程式碼中使用PHP函式 trigger_error()來產生的。 |
since PHP 5.3.0 |
30719 |
E_ALL (integer)
|
E_STRICT 出外的所有錯誤和警告資訊。 |
30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously |
錯誤級別用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
設定錯誤報告級別的方法:
1. 修改PHP的配置檔案php.ini
這種方式設定error_reporting
後,重啟web伺服器,就會永久生效。
開啟配置檔案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()
函式呼叫的後面區域。
int error_reporting ([ int $level ] )
引數可以是整型或對應的常量識別符號,推薦使用常量的形式。返回值為當前位置處起作用的錯誤報告級別的值(整型值)。
注意:配置檔案php.ini
中display_errors
的預設值為On,代表顯示錯誤提示,如果設定為Off
,就會關閉所有的錯誤提示。
使用 error_reporting(0)
或者在函式前面加 @
,可以抑制錯誤輸出
,以防止錯誤訊息洩露敏感資訊。
這些錯誤的常見場景:
Deprecated 現在一般你用mysql 連結資料庫的時候會報這個,表示你最好使用mysqli 或者pdo
Notice echo $a+8;
Warning 當你使用include 包含檔案的時候,檔案出錯就會返回一個wanrning錯誤
Fatal error 還是require 檔案,檔案出錯時會返回fatal erroe
parse error 語法錯誤
相關文章
- php中的錯誤級別PHP
- php的錯誤日誌級別 error_report(轉)PHPError
- PHP錯誤型別及遮蔽方法PHP型別
- PHP中如何設定error_reporting錯誤報告級別PHPError
- 升級到PHP5.4.3遇到的一個錯誤PHP
- 編譯PHP的錯誤編譯PHP
- PHP捕捉錯誤PHP
- PHP 錯誤處理PHP
- php錯誤處理PHP
- [php]php錯誤處理機制PHP
- PHP 的錯誤機制總結PHP
- PHP的錯誤機制總結PHP
- 關閉PHP錯誤提示的方法PHP
- PHP錯誤“Thisfilehasexpired”的解決方法PHP
- PHP錯誤和異常PHP
- PHP顯示全部錯誤PHP
- php編譯小錯誤PHP編譯
- 常見的 PostgreSQL 升級錯誤SQL
- 開啟PHP的錯誤log日誌PHP
- 修正memcache.php中的錯誤示例PHP
- PHP開發者常犯的10個MySQL錯誤PHPMySql
- PHP 核心特性 - 錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- 如何關閉PHP錯誤提示PHP
- php錯誤及異常捕捉PHP
- mysql與php錯誤解決MySqlPHP
- 使用PHP錯誤處理 (轉)PHP
- PHP系列(七)PHP錯誤異常處理PHP
- 主從故障處理--session 級別引數複製錯誤Session
- Cocopods的升級錯誤解決
- 淺析php中的異常與錯誤PHP
- 十個PHP開發者最容易犯的錯誤PHP
- 關於PHP 時區錯誤的問題PHP
- PHP安裝後錯誤處理PHP
- PHP curl error 60 錯誤解決PHPError
- Mac下php常見錯誤資訊MacPHP
- 正確理解 PHP 錯誤資訊(轉)PHP
- 常見的錯誤日誌型別型別