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() は1回だけ呼び出されます:)

于 2012-05-08T04:57:10.327 に答える