如果我有这个功能:
function getList()
{
$list = array();
$list['foo'] = 'Foo';
$list['bar'] = 'Bar';
return $list;
}
然后我这样做:
foreach ( getList() as $item )
{
echo $item.'<br>';
}
这段代码会比这样做慢吗?
$list = getList();
foreach ( $list as $item )
{
echo $item.'<br>';
}
答案 0 :(得分:5)
我确信在你的第一个例子中,foreach中的getList()函数只被评估一次。 因此,没有任何巨大的差异。
更新: 根据要求,这是我在php交互模式下进行的快速测试。
function getList() {
echo 'a';
return array(1,2,3);
}
foreach(getList() AS $item) {
echo $item;
}
结果:a123
答案 1 :(得分:2)
试试这个
<?php
function getList()
{
echo '<div>getList()</div>';
$list = array();
$list['foo'] = 'Foo';
$list['bar'] = 'Bar';
return $list;
}
foreach ( getList() as $item )
{
echo $item.'<br>';
}
?>
你只会得到1个回声,这意味着getList()只被调用一次:)