Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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