[英]Undefined index, isset and references in PHP
如果訪問空引用的未定義索引,則PHP不會引發任何錯誤。
<?php
$array = &$foo['bar'];
if ($array['stuff']) echo 'Cool'; // No PHP notice
$array['thing'] = 1; // Array created; $foo['bar']['thing'] == 1
$array['stuff']; // PHP notice
如果$array
不是參考,PHP將在第一行抱怨。
為什么不提供參考? 我是否需要使用isset來獲取null引用,還是PHP在內部抱怨並且不讓我知道?
您必須提高錯誤報告級別。 您的示例$array['stuff']
將引發有關未找到索引的警告。 我經常將密鑰測試與評估結合在一起,以防止出現這些警告:
if( array_key_exists("blah",$arr) && strlen($arr['blah']) > 0 ) {
; // do stuff here
}
我經常將變量與數組名結合在一起,因為每當我不得不將n粘貼剪切代碼復制到下一節以執行相同的操作時,我寧願創建一個變量名數組,然后遍歷變量名。 最荒謬的情況是當我要處理帳單和運輸數據時,將有一個數組變量名$BorS
或只是$BS
,然后在頂部設置$BorS="shipping";
並最終得到非常有趣的語句,例如:
${$BorS."data"}[${$BorS."_addr1"}]=$input_array[$BorS."_address_line_1"];
為什么不做:
$array = array();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.