Aujourd'hui, l'équipe PHP a publié la PHP 5.5.0 qui comprend la prise en charge de générateurs . Lecture la documentation j'ai remarqué qu'il fait exactement ce qu'il pourrait faire avec un tableau.
L'équipe PHP générateur exemple :
// Only PHP 5.5
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Note that $i is preserved between yields.
yield $i;
}
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value\n";
}
Résultat :
1
2
3
Mais je peux faire la même chose en utilisant des tableaux. Et je peux toujours rester compatible avec les versions antérieures de PHP.
Jetez un coup d'œil :
// Compatible with 4.4.9!
function gen_one_to_three() {
$results = array();
for ($i = 1; $i <= 3; $i++) {
$results[] = $i;
}
return $results;
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value\n";
}
La question est donc Le problème est le suivant : quel est le but de l'existence de cette nouvelle fonctionnalité ? J'ai pu jouer tous les exemples de la documentation sans utiliser la nouvelle fonctionnalité, en la remplaçant par un tableau.
Quelqu'un peut-il donner une bonne explication et peut-être un exemple qui n'est pas nécessairement impossible avec les anciennes versions, mais dont l'utilisation de générateurs peut aider au développement ?