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