<?php
function nums() {
$ary = [24,25,26,27,28,29,30,31,32];
for($x = 0,$times=0, $max = count($ary); $x < $max; $x += 2,$times++) {
$cmd = (yield $ary[$x]); // yield expr
var_dump($cmd,$times);
if ($cmd == 'stop') {
echo 'Stopping the generator ...',"\n";
return;
}
}
echo "Generator ran its course and is closed","\n";
return;
}
$gen = nums();
foreach ($gen as $value) {
echo "$value\n";
if ($value == 28) { // don't let it get to 32
$gen->send('stop');
}
}
preferences:
37.43 ms | 402 KiB | 5 Q