PHP的生成器语法

时间:2015-10-06 02:00:45

标签: php generator yield

我刚刚阅读了关于使用yield的示例教程,我不得不说我根本不理解它。我运行了示例代码,看起来它并没有做任何常规的forloop无法做到的事情。它只是像常规的forloop那样迭代数字1,2,3,除非它使用生成器来做它?我根本不懂,所以如果有人可以的话,请向我解释使用发电机和普通的forloop之间的区别。

<?php
function gen_one_to_three() {
    for ($i = 1; $i <= 3; $i++) {
        // Note that $i is preserved between yields.
        yield $i;
    }
}

$generator = gen_one_to_three();
foreach ($generator as $value) {
    echo "$value\n";
}
?>

结果:

1
2
3

只使用forloop:

for ($i = 1; $i <= 3; $i++) {
echo $i;
}

结果:

1
2
3

0 个答案:

没有答案