代码之家  ›  专栏  ›  技术社区  ›  treeface

如果提供的foreach循环数组是函数调用,是否会影响性能?[副本]

  •  1
  • treeface  · 技术社区  · 15 年前

    我们都听说过 for

    for ($i = 0, $count = count($array); $i < $c; ++$i)
    {
        // Do stuff while traversing array
    }
    

    而不是这个:

    for ($i = 0; $i < count($array); ++$i)
    {
        // Do stuff while traversing array
    }
    

    出于性能原因(即初始化 $count count() 只有一次,而不是打电话 计数() 每一次有条件的检查)。

    如果 foreach 循环,我这样做:

    $array = do_something_that_returns_an_array();
    
    foreach ($array as $key => $val)
    {
        // Do stuff while traversing array
    }
    

    而不是这个:

    foreach (do_something_that_returns_an_array() as $key => $val)
    {
        // Do stuff while traversing array
    }
    

    对于 第二种情况会在哪里一次又一次地调用函数?

    0 回复  |  直到 15 年前