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

Générateur furtif

By Frederic Bouchery

<?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

PHP Features

Last updated: 18 September 2026