【发布时间】:2026-01-16 18:15:02
【问题描述】:
我想知道是否使用
foreach(get_some_array() as $boo) do_something...
比
慢$arr = get_some_array();
foreach($arr as $boo) do_something...
如果数组有这么多元素(在第一个示例中),我的意思是 get_some_array() 会被调用 10000000 次吗?
【问题讨论】:
我想知道是否使用
foreach(get_some_array() as $boo) do_something...
比
慢$arr = get_some_array();
foreach($arr as $boo) do_something...
如果数组有这么多元素(在第一个示例中),我的意思是 get_some_array() 会被调用 10000000 次吗?
【问题讨论】:
不,该函数只会被调用 1 次。 您可以通过以下方式验证这一点:
<?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
【讨论】:
$arr = get_some_array();从理论上讲,这个方程的时间为零,所以你在这里使用什么真的不会有什么不同。
【讨论】: