2010-12-11 74 views
1

什麼是訪問對象的所有元素而不是使用foreach的最佳方式?PHP:獲取對象所有元素的最佳方式?

在此先感謝...

+0

'foreach'不適用於對象。請澄清。 – 2010-12-11 15:01:59

+0

確實如此。 $ arr = array(「hello」,「」,「world」); $ arr =(Object)$ arr; var_dump($ arr); ($ arr as $ a){ echo $ a; } ...也..什麼是在PHP中的對象? :d – 2010-12-11 15:10:18

回答

1

有什麼不好的foreach?

很好,但有幾種方法

你可以這樣做:

$length = count($arr); 
for($i = 0; $i<$length; $i++) 

你也可以做

while($i < $length) 

並直接訪問的項目,如果你有數字鍵。

但是,如果您沒有數字鍵,foreach不會變慢,而且是最好的方法。

您也可以訪問使用next($arr)的項目,也可以push/pop

我會說這取決於你想要做什麼的上下文。

如果你想用X大小的數組進行X操作,例如你需要一些循環。

如果宥只希望應用於所有元素非常相同的操作,您可以使用方便的功能array_map

,如果你只是想從它那裏得到的所有信息,你也可以使用get_object_vars然而,那麼你就只是一個新陣列,然後呢?

這真的取決於你想要做的上下文!

在大多數情況下,foreach很好,很快。

如果您想要搜索特定的鍵/值或查看它們是否存在,那麼有特殊的優化array functions

相關問題