# 錯誤分類
[TOC]
PHP中的錯誤分類分為三塊:**語法錯誤**、**運行時錯誤**、**邏輯錯誤**
>[success] 語法錯誤
> 是指由于違反了語言的有關規則而產生的錯誤。程序運行之前,都要先檢查語法。如果語法有錯誤,就會立即報錯,并且不會去執行程序代碼。如:語句結尾少了一個分號、函數調用少了半個括號等
>[success] 運行時錯誤
> 是指程序運行過程中產生的錯誤。“運行時錯誤”又分為三種情況:“提示性錯誤”、“警告性錯誤”、“嚴重性錯誤”
>[success] 邏輯錯誤
> 是指程序運行得到的實際結果和預期結果不一致。“邏輯錯誤”通常是由于人為的錯誤的算法設計而引起的。對于“邏輯錯誤”,系統通常無法自動檢測,只能通過驗證結果的正確性來判斷是否存在邏輯錯誤
## 常見錯誤代號

## 錯誤觸發分類
>[success] **系統錯誤觸發**
> 程序運行到某行代碼,確實出現了某種錯誤,此時系統就會自動報錯,這就是觸發了系統錯誤。系統錯誤是自動觸發的
> **自定義錯誤觸發**
> 根據程序的運行需要,用戶自已觸發錯誤。用戶級別的錯誤包含:E\_USER\_NOTICE(用戶提示性錯誤)、 E\_USER\_WARNING(用戶警告性錯誤)、E\_USER\_ERROR(用戶致命錯誤)
## 用戶錯誤觸發函數 trigger\_error
描述:產生一個用戶級別的 error/warning/notice 錯誤信息。
語法:**bool trigger\_error ( string $error\_msg \[, int $error\_type \] )**
參數:
* [ ] $error\_msg:用戶自定義的錯誤信息,長度限制在了1024個字節。
* [ ] $error\_type:用戶自定義的錯誤等級類型。僅 E\_USER 系列常量對其有效,默認是 E\_USER\_NOTICE。
>[danger] 注意:trigger\_error()只會拋出用戶自定義的邏輯錯誤,系統錯誤不會拋出,如果指定了不合法的錯誤類型返回 FALSE ,正確則返回 TRUE

## 錯誤是否顯示 ini\_set
如果有錯誤發生,那么系統是自動顯示到頁面,對于錯誤顯示我們也是可以手動控制
全局修改:修改PHP.ini配置文件:display\_errors = On 修改為 **display\_errors = off** 對整個程序生效
局部修改:**ini\_set('display\_error',0)** **局部只對當前頁面生效**


>[danger] 注意:語法錯誤無法屏蔽,語法錯誤無法屏蔽,語法錯誤無法屏蔽!
## 控制顯示那些錯誤 error\_reporting
全局設置:通過PHP的配置文件php.ini中的error\_reporting配置項,可以控制哪些錯誤顯示。
局部設置:如果只想控制本網頁的錯誤顯示,通過PHP函數ini\_set()來進行設置,不會屏蔽語法錯誤。
局部設置:如果只想控制本網頁的錯誤顯示,通過PHP函數error\_reporting()來進行設置
## 日志
>[success] 如果程序觸發了錯誤,默認情況下是不會將錯誤記錄保存起來,需要我們手動去修改PHP.ini文件開啟日志保存功能
開啟日志修改php.ini配置文件:log\_errors = off
日志保持地址修改php.ini配置文件:error\_log = log.log


- 基礎
- 安裝PHP
- 語言基礎
- 變量
- 變量操作
- 超全局數組變量
- 變量作用域
- 變量傳值方式
- 常量
- 數據類型
- 運算符
- 流程控制
- 文件包含
- 錯誤處理
- 字符串操作
- 數組
- 函數
- 進階
- 面向對象
- 提高
- TP
- 安裝項目
- 框架基礎知識
- 命令創建模塊
- URL生命周期
- 路由操作
- Request請求類
- 參數綁定
- 依賴注入
- 模板操作
- 查詢操作
- 添加操作
- laravel
- ☆目錄結構
- CSRF攻擊
- ☆路由
- ☆控制器
- ☆請求類
- ☆視圖
- ☆模板繼承
- ☆表單驗證
- ☆DB類
- ☆模型
- ☆數據庫遷移
- 類型、修飾、索引
- ☆數據填充
- ☆數據分頁
- ☆session處理
- ☆中間件
- ☆緩存操作
- ☆文件上傳
- ☆接口操作
- ☆擴展插件
- restful
- 工作
- 工作記錄
- QQ登錄
- 新浪登錄
- 微信登錄
- sphinx搜索
- 數據庫
- MySQL
- ☆數據庫操作
- ☆數據表操作
- ☆數據的操作
- 待修改
- 優化
- 存儲引擎選擇
- 列表類型選擇
- 范式
- 慢日志查詢
- 精準時間記錄查詢
- 計劃任務 explain
- 索引
- 索與事務
- 查詢緩存
- 存儲過程
- 觸發器
- 分區
- 分表
- sphinx
- 讀寫分離
- 搜索優化
- 網站靜態化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服務器
- Linux
- 目錄結構
- 常用命令
- VIM編輯器
- 用戶與用戶組
- 權限管理
- 運行級別
- 網絡模式
- ssh
- 軟件安裝
- 計劃任務
- Ubuntu
- 編譯PHP7.3
- 編譯MySQL
- 編譯Nginx
- apache虛擬機配置
- 安裝composer
- Nginx
- Git