Générateur furtif
<?php
function foo(): iterable {
return ['a'];
yield 'b';
}
foreach(foo() as $v) {
echo $v;
}
Le code ci-dessous a une boucle inutile. La présence du mot-clé yield dans le corps de la fonction en fait un générateur. En tant que tel, foreach() réagira aux appels yield, bien que la fonction retourne immédiatement, sans yield. D’où la boucle vide, même si la fonction retourne un tableau : en effet, pour que la fonction se comporte comme prévu, il est nécessaire de supprimer l’appel yield inaccessible, et alors, foreach() peut utiliser le retour pour la boucle.
See Also
- Generator syntax
- stealth generator [Try me]
PHP Features
Last updated: 18 September 2026