本文章介紹在php中關閉notice錯誤的一些做法,但是不得不說的是在關掉錯誤提示時,那麼程序代碼中大量的notice級別錯誤是否會造成PHP性能下降
PHP Notice: Undefined variable
PHP Notice: Undefined index
看看吧,你有沒定義的變量直接使用了。不過編PHP的時候本來就不像C++那麼嚴格,編程的時候經常還會利用這個特點。PHP的默認設置是顯示這些提示,這會造成頁面無法正常顯示出來。
//error_reporting(E_ALL);
error_reporting(E_ALL || ~E_NOTICE); //顯示除去 E_NOTICE 之外的所有錯誤信息
第一個是代表顯示所有錯誤,
第二個代表顯示所有錯誤不顯示警告,
我們只要把第二行前面加//,把第一行前面的//去掉即可。
附:各個錯誤報告詳解
使用方法:
代碼如下 復制代碼error_reporting(0);//禁用錯誤報告
error_reporting(E_ALL ^ E_NOTICE);//顯示除去 E_NOTICE 之外的所有錯誤信息
error_reporting(E_ALL^E_WARNING^E_NOTICE);//顯示除去E_WARNING E_NOTICE 之外的所有錯誤信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//顯示運行時錯誤,與error_reporting(E_ALL ^ E_NOTICE);效果相同。
error_reporting(E_ALL);//顯示所有錯誤
實例
if (!$a) {
error_reporting(0);
ob_start('ob_gzhandler');
} else {
error_reporting(E_ALL ^ E_NOTICE);
}
在php.ini中禁止修改方法
1、由空間商在服務器中的php.ini的配置文件修改:
在php.ini文件中改動error_reporting
改為:
代碼如下 復制代碼 error_reporting = E_ALL & ~E_NOTICE如果你是固得美國空間用戶,不能操作php.ini文件,你可以用下面的方法來實現
2.在你想禁止notice錯誤提示的頁面中加入下面的代碼
代碼如下 復制代碼/* Report all errors except E_NOTICE */
error_reporting(E_ALL ^ E_NOTICE);
注意一點的是
關閉掉PHP錯誤輸出並不會關閉php內核對錯誤的處理,代碼中如果有大量的Notice級別的錯誤,還是會降低php程序的性能。所以我們在開發的時候還是要將錯誤級別開至E_ALL,謹慎的處理掉每處不合理的代碼