如果訪問空引用的未定義索引,PHP不會引發任何錯誤。如果$array
不是一個參考PHP會抱怨的第一行。未定義的索引,isset和PHP中的引用
爲什麼不參考?我是否需要爲空引用而煩惱isset,還是PHP在內部抱怨而不讓我知道?
如果訪問空引用的未定義索引,PHP不會引發任何錯誤。如果$array
不是一個參考PHP會抱怨的第一行。未定義的索引,isset和PHP中的引用
爲什麼不參考?我是否需要爲空引用而煩惱isset,還是PHP在內部抱怨而不讓我知道?
爲什麼不只是做:
$array = array();
我不想做任何事情,我只是對行爲感到好奇。 – velo9
這是因爲您的錯誤報告設置稍高。在生產環境中,您可以禁用php錯誤。 – user962449
我顯示所有的錯誤(這是發展)。 – velo9
您必須提高錯誤報告級別。你的例子$array['stuff']
將會拋出有關找不到索引的警告。我經常與評價相結合的測試爲關鍵,以防止這些警告:
if(array_key_exists("blah",$arr) && strlen($arr['blah']) > 0) {
; // do stuff here
}
我經常在數組名稱相結合的變量,因爲任何時候我不得不削減正複製粘貼代碼到下一節做同樣的事情,我寧願製作一個變量名稱數組,然後迭代變量名稱。最荒謬的條件是,當我有付款和發貨數據操縱,在那裏我將有一個數組變量名稱$BorS
或只是$BS
,然後在頂部,設置$BorS="shipping";
與像真正有趣的陳述結束了:
${$BorS."data"}[${$BorS."_addr1"}]=$input_array[$BorS."_address_line_1"];
你引用的不是數組,所以我不認爲你問的是有道理的。 –
糾正我,如果我錯了,但通過引用傳遞函數或循環正確? – David
@Juan - 你是對的,未定義的索引是沒有意義的。儘管如此,我仍然期待一些E_NOTICE。未定義的變量可能?雖然'$ array'可能被設置爲類似於第1行上的'NULL',但是一旦創建了數組,它仍然會記住數組的深度,如第1行所定義的,這很有趣。 – velo9