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 語法錯誤
相關文章
- 3種常見的Class級別的錯誤
- PHP捕捉錯誤PHP
- PHP 錯誤處理PHP
- php錯誤處理PHP
- PHP錯誤和異常PHP
- 開啟PHP的錯誤log日誌PHP
- 修正memcache.php中的錯誤示例PHP
- Cocopods的升級錯誤解決
- 常見的 PostgreSQL 升級錯誤SQL
- PHP 核心特性 - 錯誤處理PHP
- 如何關閉PHP錯誤提示PHP
- 淺析php中的異常與錯誤PHP
- vscode 外掛 PHP Intelephense 造成的錯誤提示VSCodePHPIntel
- PHP安裝後錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- PHP curl error 60 錯誤解決PHPError
- PHP編譯安裝時常見錯誤解決辦法,php編譯常見錯誤PHP編譯
- 常見的錯誤日誌型別型別
- php錯誤與異常處理方法PHP
- PHP基礎之錯誤與異常PHP
- PHP 字元轉拼音首字iconv 警告錯誤PHP字元
- MySQL主從複製錯誤——列型別轉換錯誤MySql型別
- mybatis引數型別錯誤MyBatis型別
- PHP中的Malformed UTF-8 characters錯誤解決PHPORM
- 十個PHP開發者最容易犯的錯誤PHP
- 升級提示 執行SQL發生錯誤!錯誤:duplicate column name: picstitleSQL
- IIS瀏覽器422、500等錯誤提示:自定義錯誤模組不能識別此錯誤瀏覽器
- PHP HTTP 500 - 內部伺服器錯誤PHPHTTP伺服器
- 程式錯誤型別及其處理型別
- pbootcms升級提示 執行SQL發生錯誤!錯誤:duplicate column name: picstitlebootSQL
- 關於Mapreduce Text型別賦值的錯誤型別賦值
- 升級Xcode10導致的編譯錯誤XCode編譯
- php7 使用 phpunit 部分錯誤和解決方案PHP
- 微信支付WxpayAPI_php_v3 錯誤修改APIPHP
- PHP & Linux: libsodium.so.23 錯誤解決方法PHPLinux
- Harbor企業級倉庫錯誤總結
- 產品經理常犯的十大頂級錯誤
- PHP初學者最常遇到的8個錯誤及解決方法PHP
- PHP編譯configure時常見錯誤,和PHP7.1.4 編譯安裝PHP編譯