<?php
function gen1($a = 0) {
$i = 0;
while($i < 5) {
yield $a;
$a = $a + 1;
$i = $i + 1;
}
return $a * 5;
}
function yf() {
$bs = yield from [];
echo "Done with the garbage iterator. Should return nothing. Actual return value below:\n";
var_dump($bs);
$som = yield from [1, 2, 3];
echo "Done with the iterator. Result was $som\n";
$res = yield from gen1();
echo "Done with the first generator. Result was $res\n";
$oth = yield from gen1($res);
echo "Done with the second generator. Result was $oth\n";
return $oth;
}
$g = yf();
foreach($g as $val) { var_dump($val); }
var_dump($g->getReturn());
Done with the garbage iterator. Should return nothing. Actual return value below:
NULL
int(1)
int(2)
int(3)
Done with the iterator. Result was
int(0)
int(1)
int(2)
int(3)
int(4)
Done with the first generator. Result was 25
int(25)
int(26)
int(27)
int(28)
int(29)
Done with the second generator. Result was 150
int(150)
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Fatal error: Generators cannot return values using "return" in /in/3oSO7 on line 10
Process exited with code 255.