PHP:获取对象所有元素的最佳方式?

问题描述:

什么是访问对象的所有元素而不是使用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

get_object_vars - 获取给定对象的属性

细节 - http://php.net/manual/en/function.get-object-vars.php

有什么不好的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