generatorを、for文で使ってハマったのでメモ
コード
<?php
function randGenerator($count)
{
for($i = 1; $i <= $count; $i++) {
if($i >= 5){
yield $i;
}
yield $i * 2;
}
}
$sum = 0;
foreach(randGenerator(10) as $num => $value) {
print($num."個目: ".$value."\n");
$sum += $value;
}
print("合計: ".$sum);
結果
yieldで処理が止まっているので、再開された場合、次のyieldの処理が実施されてしまう。
0個目: 2
1個目: 4
2個目: 6
3個目: 8
4個目: 5
5個目: 10
6個目: 6
7個目: 12
8個目: 7
9個目: 14
10個目: 8
11個目: 16
12個目: 9
13個目: 18
14個目: 10
15個目: 20
合計: 155