error_reporting() 函數規定報告哪個錯誤 。該函數設置當前腳本的錯誤報告級別。該函數返回舊的錯誤報告級別。
首先要知道error_reporting()函數是用來設置錯誤級別并返回當前級別的。它有14個錯誤級別,如下:
1 E_ERROR 致命的運行時錯誤。 錯誤無法恢復過來。腳本的執行被暫停2 E_WARNING 非致命的運行時錯誤。 腳本的執行不會停止4 E_PARSE 編譯時解析錯誤。解析錯誤應該只由分析器生成8 E_NOTICE 運行時間的通知。16 E_CORE_ERROR 在PHP啟動時的致命錯誤。這就好比一個在PHP核心的E_ERROR32 E_CORE_WARNING 在PHP啟動時的非致命的錯誤。這就好比一個在PHP核心E_WARNING警告64 E_COMPILE_ERROR 致命的編譯時錯誤。 這就像由Zend腳本引擎生成了一個E_ERROR128 E_COMPILE_WARNING 非致命的編譯時錯誤,由Zend腳本引擎生成了一個E_WARNING警告256 E_USER_ERROR 致命的用戶生成的錯誤。512 E_USER_WARNING 非致命的用戶生成的警告。 1024 E_USER_NOTICE 用戶生成的通知。2048 E_STRICT 運行時間的通知。4096 E_RECOVERABLE_ERROR 捕捉致命的錯誤。8191 E_ALL來 所有的錯誤和警告。
好像php默認是不開啟錯誤的,所以你需要配置php.ini文件:
將 display_errors = Off 改為display_errors = On
另外還要配置錯誤級別:將
error_reporting = E_ALL 改為:
error_reporting = E_ALL & ~E_NOTICE
應為php默認是顯示所有錯誤的,而有些無害的提示我們不需要顯示,所以設置如上!
也可以在php代碼運用如下:
<?php//禁用錯誤報告,也就是不顯示錯誤error_reporting(0);//報告運行時錯誤error_reporting(E_ERROR | E_WARNING | E_PARSE);//報告所有錯誤error_reporting(E_ALL);?>
使用示例:
今天學習CI框架過程中遇到個問題:
A PHP Error was encountered Severity: Notice Message: Undefined variable: user
一般在默認的普通PHP文件中輸出一個未定義聲明的變量是不會報錯誤的,但在codeigniter框架下卻要報錯誤,這對于想集成 添加 和 修改 頁面于一體的”懶人”很不方便,由于是初學者開始還想怎么在代碼中屏蔽這一錯誤提示呢.甚至用到了@,但聽很多人都說@會大大降低性能….
最后突然想到,是不是codeigniter有意讓這錯誤信息提示出來了呢,我們該如何去屏蔽掉這一類錯誤呢無意中搜索到了”如何讓codeigniter不顯示Notice信息?”,茅塞頓開.原來是入口index.php中的error_reporting(E_ALL);在作怪.只需要把它改成
error_reporting(E_ALL ^ E_NOTICE);
就可以屏蔽掉這個錯誤,而不影響其他的報錯.
我們在程序中可能經常看到這么一個函數
新聞熱點
疑難解答