3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php function gen1() { $x = yield 1; echo "Sup!\n"; $y = yield 2; var_dump($x + $y); } function yfgenerator() { yield from gen1(); echo "Dawg\n"; yield from gen1(); yield from [1, 2, 3]; } function yfeiterator() { $arr = [1, 2, 3]; foreach($arr as $val) { yield $val; } } function yfiterator() { yield from []; yield from [1, 2, 3]; /**/ yield from array( "first" => 1, "second" => 2, "third" => 3, ); /**/ } function iterationTest($g) { echo "About to start iteration\n"; foreach($g as $key => $val) { echo "Iteration!\n"; var_dump($key); var_dump($val); } echo "Done with iteration\n"; } function sendingTest($g) { $g->next(); $g->send(10); $g->send(20); } iterationTest(yfiterator()); //iterationTest(yfeiterator()); // iterationTest(gen1()); echo "Done with all tests\n";
based on 6eT0o
Output for 7.0.0 - 7.2.0
About to start iteration Iteration! int(0) int(1) Iteration! int(1) int(2) Iteration! int(2) int(3) Iteration! string(5) "first" int(1) Iteration! string(6) "second" int(2) Iteration! string(5) "third" int(3) Done with iteration Done with all tests
Output for 5.4.0 - 5.6.28
Parse error: syntax error, unexpected '1' (T_LNUMBER) in /in/I1i17 on line 4
Process exited with code 255.
Output for 5.3.19 - 5.3.29
Parse error: syntax error, unexpected T_LNUMBER in /in/I1i17 on line 4
Process exited with code 255.