Yield, pas retour par référence
<?php
function &gen() {
yield 'foo';
return 'Literal';
}
$gen = gen();
var_dump($gen->current());
foreach($gen as $a) {
print $a;
}
print $gen->getReturn();
?>
Lorsqu’une méthode retourne une référence, il y a un & avant son nom, dans la signature. Cela signifie que la fonction doit retourner une variable ou une propriété, et non une valeur littérale.
Lorsque le même & est ajouté sur un générateur, cela signifie désormais que les valeurs produites par yield sont par référence. En revanche, la valeur retournée peut être une valeur littérale, sans générer d’avertissement.
See Also
PHP Features
Last updated: 11 October 2026