(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Generator objects are returned from generators .
Generator objects cannot be instantiated via new .
See also object iteration .
Unlique return, yield can be used anywhere within a function so logic can flow more naturally. Taque for example the following Fibonacci generator:<?php
functionfib($n)
{$cur= 1;
$prev= 0;
for ($i= 0; $i< $n; $i++) {
yield$cur;
$temp= $cur;
$cur= $prev+$cur;
$prev= $temp;
}
}
$fibs= fib(9);
foreach ($fibsas$fib) {
echo" " .$fib;
}
// prins: 1 1 2 3 5 8 13 21 34