1. 程式人生 > >PHP學習中遇到的錯誤之Notice: Undefined offset: 4

PHP學習中遇到的錯誤之Notice: Undefined offset: 4

今天在幫朋友除錯伺服器的時候發現以前wp的404搞的偽靜態竟然用不了了,然後就試著訪問404出錯頁,結果首部出現

 

Notice: Undefined offset: 1 in D:\wwwroot\wr\askseo\404.php on line 5

Notice: Undefined offset: 2 in D:\wwwroot\wr\askseo\404.php on line 5

Notice: Undefined offset: 2 in D:\wwwroot\wr\askseo\404.php on line 7

Notice: Undefined offset: 1 in D:\wwwroot\wr\askseo\404.php on line 12

       這問題很常出現在陣列中的,程式是能正確地執行下去,但是在螢幕上總會出現這樣的提示:Notice: Undefined offset: ….. 網上普遍是採用抑制其顯示的方法,即更改php.ini檔案中error_repoting的引數為”EALL & Notice “,這樣螢幕就能正常顯示了.
問題是解決了,但是總想不透offset:接下去的數字(如 Notice: Undefined offset: 4 ….)是什麼意思.還有,句子裡的語法明明是正確的,為什麼會出現警告.冷靜地思考了好幾遍並嘗試了每種可能,終於找到了答案.offset:接下去的數字是出錯的陣列下標,一般是超出了陣列的取值範圍,如定義了陣列$A[]有10個元數,如果出現了$A[10]就會出現錯誤(Notice: Undefined offset: 10 ….),因為陣列的下標是從0開始的,所以這個陣列的下標就只能是0~9.

因此在出現這類問題時,不要急於用抑制顯示的方法(更簡單的可以在當前檔案的最前面加上一句”error_reporting(填offset:接下去的那個數字);,一定要注意你所用的陣列下標,仔細思考一下,問題一定會很快得到解決的 !發也有可能是unset陣列後再嘗試讀取其內容

      或者也可以在報錯的那一行前面加一個@符號,遮蔽錯誤就ok了。非常簡單。

參考文獻:

https://blog.csdn.net/weiyongle1996/article/details/52073973