PHP錯誤級別詳解

在PHP開發的時候常常會用到error_reporting(report_level)來調試自己的程序,下面列出了report_level可能值:

常量 描述
1 E_ERROR 這是一個嚴重錯誤,不可恢復,如位置異常,內存不足等
2 E_WARNING 警告,最一般的錯誤,如函數的參數錯誤等
4 E_PARSE 解析錯誤,在解析PHP文件時產生,並強制PHP在執行前退出
8 E_NOTICE 通告表示可能在操作一些未知的變量等。在開發時可開啓通告,以保證程序是"安全通告"的,瑞在正式系統中,應關閉通告
16 E_CORE_ERROR 這個內部錯誤是由於PHP加載擴展失敗而導致的,並且會導致PHP停止運行並退出
32 E_CORE_WARNING PHP啓動時初始化過程中的警告(非致命性錯)
64 E_COMPILE_ERROR 編譯錯誤是在編譯時發生,這個錯誤將導致PHP運行退出
128 E_COMPILE_WARNING 編譯警告用於告訴用戶一些不推薦的語法信息
256 E_USER_ERROR 用戶定義的錯誤將導致辭PHP退出,它對是來自PHP自身,而是來自腳本文件中。
512 E_USER_WARNING 腳本使用它來通知一個執行失敗,同時PHP也會用E_WARNING通知
1024 E_USER_NOTICE 用戶定義的通告用於在腳本中表示可能存在的錯誤
2048 E_STRICT 編碼標準化警告(建議如何修改以向前兼容)
4096 E_RECOVERABLE_ERROR 接近致命的運行時錯誤,若未被捕獲則視同E_ERROR
8191 E_ALL 除E_STRICT外的所有錯誤(PHP6中爲8191,即包含所有)

例子:

任意數目的以上選項都可以用“或”來連接(用 OR 或 |),這樣可以報告所有需要的各級別錯誤。例如,下面的代碼關閉了用戶自定義的錯誤和警告,執行了某些操作,然後恢復到原始的報錯級別:

<?php
//禁用錯誤報告
error_reporting(0);

//報告運行時錯誤
error_reporting(E_ERROR | E_WARNING | E_PARSE);   

//報告所有錯誤
error_reporting(E_ALL);   

error_reporting(7);
/*
設置php錯誤檢測級別
E_ERROR - 致命性運行時錯 (1)
E_WARNING - 運行時警告(非致命性錯)(2)
E_PARSE - 編譯時解析錯誤 (4)
1+2+4 = 7
*/
?>
我們熟悉的uchome系統中的調試處理就採用了以下錯誤檢測級別:
D_BUG ? error_reporting(7) : error_reporting(0);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章