3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php function count_to_ten() { yield 1; yield 3 => 2; $cmd = yield from [3, 4]; if ($cmd == 't') { echo "close"; break; return false; } yield from new ArrayIterator([5, 6]); yield from seven_eight(); return yield from nine_ten(); } function seven_eight() { yield 7; yield from eight(); } function eight() { yield 8; } function nine_ten() { yield 9; return 10; } $gen = count_to_ten(); foreach ($gen as $k => $num) { echo "$k -> $num \n"; echo $gen->send('t'); } var_dump( $gen->getReturn());
based on meji7
Output for 7.0.0 - 7.1.7
Fatal error: 'break' not in the 'loop' or 'switch' context in /in/g1mdo on line 9
Process exited with code 255.
Output for hhvm-3.15.4
0 -> 1 0 -> 3 t0 -> 5 t0 -> 7 0 -> 9 Fatal error: Uncaught exception 'Exception' with message 'Generator is already finished' in /in/g1mdo:36 Stack trace: #0 /in/g1mdo(36): Generator->next() #1 {main}
Process exited with code 255.
Output for 5.6.0 - 5.6.30
Parse error: syntax error, unexpected 'from' (T_STRING) in /in/g1mdo on line 6
Process exited with code 255.