Возьмем кусок кода, который выводит нам числа 2 - 4 - 6 - 8 - 10 - 12 -
function doubleArray ($arr, $callback) {
foreach ($arr as $v) yield $callback ($v);
}
$arr = [1,2,3,4,5,6];
$gener = doubleArray($arr, function($x) {return $x *2;});
foreach ($gener as $v) echo "$v - ";
Как он отрабатывает? В функцию function doubleArray передается массив $arr = [1,2,3,4,5,6];, массив с помощью foreach разбивается на значения? Что происходит дальше? что делает yield $callback ($v);? он вызывает функцию $callback и возвращает туда значения массива $arr?