- var_dump: documentation ( source)
- is_callable: documentation ( source)
<?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);