-4

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

假设我有一个数组,其中包含从 1 到 10 的数字,是否可以循环遍历数组并返回1, then 2, then 3, then 4, then5,而不是一次性返回所有?显然我已经简化了这个请求,但基本上我的循环调用了一个有 1 秒超时的函数,因此用户等待 10 多秒以返回所有结果而不是每秒返回一个结果就不会那么烦人了。12345678910

4

1 回答 1

2

是的,newPHP 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/>" ;
}
于 2013-06-28T10:27:31.190 回答