- var_dump: documentation ( source)
<?php
$iter = function(int $a) : \Generator {
yield $a + 1;
};
$reset = function (int $a) : bool {
return $a == 7;
};
$init = function () : int {
return 3;
};
function rotatable(callable $iterate, callable $reset, callable $init) : \Generator {
$i = $init();
$gen = $iterate($i);
while (TRUE) {
yield $i;
$i = $gen->current();
$reset($i) and $i = $init();
$gen = $iterate($i);
}
}
function rotate(\Generator $generator) {
$current = $generator->current();
$generator->next();
return $current;
}
$gen = rotatable($iter, $reset, $init);
for ($i = 0; $i < 15; $i++) {
var_dump(rotate($gen));
}