我想知道是否使用
foreach(get_some_array() as $boo) do_something...
慢于
$arr = get_some_array();
foreach($arr as $boo) do_something...
我的意思是如果数组有这么多元素(在第一个例子中),那么get_some_array()会被调用为10000000次吗?
答案 0 :(得分:6)
不,该功能只会被调用一次。 您可以通过执行以下操作来验证这一点:
<?php
function get()
{
echo "getting\n";
return array('a', 'b', 'c', 'd');
}
foreach (get() as $v) {
echo $v . "\n";
}
?>
这里输出:
murilo@mac:regionais$ php -f teste.php
getting
a
b
c
d
答案 1 :(得分:1)
$ arr = get_some_array();从理论上讲,这个等式增加了零时间,因此它在这里使用的确不会产生任何影响。