[TOC]
* * * * *
### 一. 錯誤類型
1. 語法錯誤
2. 環境錯誤
3. 邏輯錯誤
### 二. 錯誤
|選項 | 描述 |
| --- | --- |
| E_ERROR | 致命的運行時錯誤,終止程序執行 |
| E_WARNING | 運行時警告 |
| E_PARSE | 語法解析錯誤 |
| E_NOTICE | 通知(注意),表示可能表現為錯誤的情況 |
| E_CORE_ERROR | 在PHP初始化啟動過程中發生的致命錯誤 |
| E_CORE_WARNING | PHP初始化啟動過程中發生的警告 |
| E_COMPILE_ERROR | 致命編譯錯誤 |
| E_COMPILE_WARNING | 編譯時警告 |
| ... | ... |
### 三. 錯誤級別
* Deprecated 最低級別的錯誤(表示 : 不推薦)(比如mysql的相關函數)
* Notice 通知級別的錯誤
* Warning 警告級別的錯誤
* Fatal error 致命級別錯誤
* Parse error 語法解析錯誤, 最高級別
* E_USER_ 相關的錯誤
### 三. 設置錯誤級別
~~~
# php.ini 中設置 error_reporting 來顯示錯誤級別
# 顯示所有錯誤
error_reporting = E_ALL
~~~
~~~
# php.ini 中設置 display_errors 來 顯示/關閉 錯誤輸出
# 顯示
display_errors = On
~~~
~~~
# 代碼中通過 error_reporting() 函數動態設置 顯示錯誤的級別
# 顯示所有錯誤
error_reporting(E_ALL);
# 不顯示Notice錯誤
error_reporting(E_ALL&~E_NOTICE);
# 不顯示錯誤
error_reporting(0);
# 顯示錯誤
error_reporting(-1);
~~~
~~~
# ini_set(); 運行時設置配置選項的值
ini_set('error_reporting, 0);
ini_set('error_reporting, -1);
ini_set('display_errors, 'Off'); // 關閉
~~~