3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?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());
Output for 7.0.0 - 7.2.0
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.6.28
Fatal error: Generators cannot return values using "return" in /in/3oSO7 on line 10
Process exited with code 255.
Output for 5.4.0 - 5.4.45
Parse error: syntax error, unexpected '$a' (T_VARIABLE) in /in/3oSO7 on line 6
Process exited with code 255.
Output for 5.3.19 - 5.3.29
Parse error: syntax error, unexpected T_VARIABLE in /in/3oSO7 on line 6
Process exited with code 255.