[英]Creating multidimensional php arrays without declaring
我注意到了這一點,並且不確定如何使用它。
基本上,如果您使用子數組,PHP似乎會神奇地創建子數組?
// $moo is not defined
$moo['agagag']['sdfsdf'][] = 4654645;
// no E_NOTICE or anything, it creates the array
// array(
// 'agagag' => array(
// 'sdfsdf' => array(
// 0 => 4654645
// )
// )
// )
此行為記錄在任何地方嗎? 使用安全嗎?
(我習慣於手動創建每個級別,這感覺很奇怪)
是的,此行為是預期的,並且也記錄在手冊中 :
$arr[key] = value; $arr[] = value; // key may be an integer or string // value may be any value of any type
如果$ arr還不存在,它將被創建 ,因此這也是創建array的另一種方法 。 但是不建議這樣做,因為如果$ arr已經包含某個值(例如,來自請求變量的字符串),則該值將保留在該位置,並且[]實際上代表字符串訪問運算符。 最好總是通過直接賦值來初始化變量。
它已保存,您可以使用它,但是我在聲明時喜歡以下內容:
$moo = array(
'agagag' => array(
'sdfsdf' => array(
4654645
)
)
);
這是標准行為,沒有任何問題:您可以在此處查看完整的文檔: http : //php.net/manual/en/language.types.array.php (請參閱“使用方括號語法創建/修改” )。
當然,您必須在所有代碼中都意識到這一點,當然,如果您事先知道數組的結構,則可以按照@Frankbeen答案定義它,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.