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 return

<?php

function foo() {
    yield 1;
    yield 2;
    yield 3;
    
    return ' 4';
}

function goo($a, $b, $c) {
    print "$a $b $c";
}
print PHP_EOL;

goo(...foo());

goo(...($g = foo()));
echo $g->getReturn();

?>

Ce code affiche 1 2 3. C’est parce que l’opérateur ... agit comme un foreach et exécute le générateur. Il étale ensuite les valeurs comme arguments pour l’appel de fonction et, dans ce cas, correspond aux arguments nécessaires.

Notez que les paramètres nommés sont également supportés, avec la bonne version de PHP.

La valeur retournée par le générateur est perdue dans ce cas. Si vous avez besoin d’accéder aux valeurs retournées, vous devez obtenir le générateur et appeler la méthode getReturn().

See Also

PHP Features

Last updated: 11 October 2026