PHP foreach - 返回1到1的结果

时间:2013-06-28 10:15:24

标签: php loops foreach

是否有任何方法可以循环遍历数组并在计算结果时返回每个结果,而不是等到所有值都计算出来之后再显示它们?

假设我有一个数字从1到10的数组,是否可以遍历数组并返回1,然后2,然后3,然后{{ 1}},然后4等。而不是一次性返回5?显然我已经简化了这个请求,但基本上我的循环调用了一个具有1秒超时的函数,因此对于用户等待10+秒以返回所有结果而不是每秒返回的结果都不那么烦人了。 / p>

1 个答案:

答案 0 :(得分:2)

是的,新的PHP 5.5提供generators等内容。

function one_to_ten() {
    for ($i = 1; $i <= 10; $i++) {
        yield $i; //It is like a return, but can be done several times.
    }
}

$generator = one_to_ten(); //The loop is not executed yet. We just created the generator.
/* Some big code here */
foreach ($generator as $number){//Only here the iteration starts.
  echo "{$number} <br/>" ;
}