3v4l.org

run code in 300+ PHP versions simultaneously
<?php function foo() { $foo = (yield 'strlen' => ['a']); $foo .= (yield 'strlen' => ['ab']); $foo .= (yield 'strlen' => ['abc']); yield $foo."final"; } function call_generator_function($g) { $args = $g->current(); $callable = $g->key(); while ($g->valid() && is_callable($callable)) { $return = call_user_func_array($callable, $args); $g->send($return); $args = $g->current(); $callable = $g->key(); } return $args; } $result = call_generator_function(foo()); var_dump($result);

preferences:
30.37 ms | 402 KiB | 5 Q