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,謹慎的處理掉每處不合理的代碼