- var_dump: documentation ( source)
<?php
function mutate($value, Generator $mutator)
{
while ($mutator->valid()) {
try {
$fn = $mutator->current();
$value = $fn($value);
$mutator->send($value);
} catch (Exception $e) {
$mutator->throw($e);
}
}
return $value;
}
$mutations = [
function ($n) { return $n + 1; },
function ($n) { return $n + 2; },
function ($n) { return $n + 3; },
function ($n) { return $n + 4; },
];
function debuggingMutator(array $mutations)
{
foreach ($mutations as $mutation) {
$result = (yield $mutation);
echo "Result: {$result}\n";
}
}
$result = mutate(0, debuggingMutator($mutations));
var_dump($result);