3v4l.org

run code in 300+ PHP versions simultaneously
<?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.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
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.

preferences:
178.76 ms | 402 KiB | 215 Q