我刚刚阅读了关于使用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