Generateur ignore yield une fois sur deux
Posté : 18 août 2016, 11:32
Bonjour à tous,
J'ai appris qu'un générateur se met en pause lorsqu'il rencontre un yield en attente d'être appelé, du coup je n'arrive pas à comprendre pourquoi mon yield est ignoré :
Retourne :
Vous avez une idée ?
J'ai appris qu'un générateur se met en pause lorsqu'il rencontre un yield en attente d'être appelé, du coup je n'arrive pas à comprendre pourquoi mon yield est ignoré :
Code : Tout sélectionner
<?php
function generator()
{
for($i = 0; $i < 5; $i++):
echo "Début $i<br />";
echo yield;
echo "Fin $i<hr />";
endfor;
}
$monGen = generator();
foreach ($monGen as $key => $value):
$monGen->send('Hello<br />');
endforeach;
?>
Notez que si je ne passe pas par une boucle foreach et que je fais manuellement chaque $monGen->send() le générateur se comporte correctement.Début 0
Hello
Fin 0
Début 1
Fin 1
Début 2
Hello
Fin 2
Début 3
Fin 3
Début 4
Hello
Fin 4
Vous avez une idée ?