0

可能重复:
如何读取 PHP foreach 循环中的数组?

如果我有这个功能:

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>';
}
4

2 回答 2

5

我敢肯定,在您的第一个示例中, foreach 中的 getList() 函数仅被评估一次。因此,不会有任何巨大的差异。

更新:根据要求,这是我在 php 交互模式下进行的快速测试。

function getList() {
    echo 'a';
    return array(1,2,3);
}

foreach(getList() AS $item) {
    echo $item;
}

结果:a123

于 2012-05-08T04:49:01.350 回答
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() 只调用一次:)

于 2012-05-08T04:57:10.327 回答