我想知道PHP如何處理匿名數組,如果我做這樣使用它foreach循環:匿名數組與PHP
foreach(array('a', 'b') as $foo) {
// ...
}
如果數組被每一步重建這是行不通的 - 但它有效,所以看起來PHP爲該數組創建了一個變量(或者類似的東西,其實並不重要) - 這意味着這實際上不會有糟糕的性能。但是,有沒有爲什麼不使用匿名數組與foreach循環? (它有點「看起來錯/糟糕」給我)
我想知道PHP如何處理匿名數組,如果我做這樣使用它foreach循環:匿名數組與PHP
foreach(array('a', 'b') as $foo) {
// ...
}
如果數組被每一步重建這是行不通的 - 但它有效,所以看起來PHP爲該數組創建了一個變量(或者類似的東西,其實並不重要) - 這意味着這實際上不會有糟糕的性能。但是,有沒有爲什麼不使用匿名數組與foreach循環? (它有點「看起來錯/糟糕」給我)
這是一個非常正常的數組,而且應該工作。
你的術語很怪異,匿名對函數有意義,因爲通常有名稱,但對於數組?如果您不直接將其分配給變量,是整數匿名嗎? :) Nah ..
我沒有看到一個不使用它的理由。
無論您是使用直接初始化的數組還是使用數組變量作爲參數爲foreach
。它們都是有效的參數,沒有理由認爲匿名數組的處理方式不同。
從代碼維護的角度來看,它也完全清楚這裏正在做什麼,所以也沒有可讀性問題。
通過避免使用臨時數組變量,您還可以減少變量範圍的污染。這是一個小問題,但也是一個很好的副作用。 –
不是你的問題的一個問題,但是這個代碼也讓我感到困惑:P。我會使用array-map(http://php.net/manual/en/function.array-map.php)來避免這種情況:P – Nanne
我認爲'foreach'中匿名數組的最佳示例是:'foreach(range('a','z')as $ char){}' – ComFreek
「PHP爲該數組創建了一個變量(或類似的東西,其實並不重要)」 - 它的確如此,無所謂 - 如果您將其存儲在命名數組中,您將創建一個。 – Eric