Maison > Article > développement back-end > Rendement PHP
Le mot-clé PHP rendement est utilisé pour créer une fonction génératrice. Il s'agit d'un mot-clé intégré à PHP. Une fonction génératrice est identique à la fonction normale, sauf qu'elle renvoie une seule valeur, le mot-clé générateur de rendement renvoie de nombreuses valeurs nécessaires au retour de la fonction génératrice. Toute fonction contenant du rendement est une fonction génératrice. Le générateur fonctionne de la même manière que l'itérateur, qui boucle avec une boucle foreach, et chaque fois qu'il a besoin d'une valeur, le générateur renvoie une valeur ; le mot-clé rendement est le même que le mot-clé return, sauf qu'au lieu d'arrêter l'exécution.
PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Syntaxe
yield $value;
Paramètres –
valeur – Ceci n'est pas facultatif, cela spécifie la valeur qui doit être renvoyée.
Valeur de retour – La valeur de retour de cette méthode correspond aux valeurs qui doivent être renvoyées dans la fonction de génération.
Le mot-clé PHP rendement utilisé dans la fonction générateur pour renvoyer ou générer les multiples valeurs. Lorsque la fonction génératrice est appelée, elle renvoie un objet itérateur qui peut être itéré. Lorsque nous itérons cet objet par une boucle foreach, qui appelle les méthodes d'itération de l'objet par PHP à chaque fois qu'il a besoin d'une valeur, alors l'état de la fonction génératrice est enregistré lorsque la fonction génératrice produit une valeur qui est reprise pour obtenir la valeur suivante. Lorsqu'il n'y a aucune valeur à produire, le générateur se termine simplement et le code appelant peut continuer au moment où le tableau manque de valeurs.
Différents exemples sont mentionnés ci-dessous :
Ensuite, nous écrivons le code PHP pour comprendre plus clairement le mot-clé PHP rendement avec l'exemple suivant, où le mot-clé rendement est utilisé pour générer plusieurs valeurs à partir de la fonction génératrice, comme ci-dessous –
Code :
<?php // creating function to generate even numbers in between 2 to 10 function gen_even_numbers() { for ($i = 2; $i <= 10; $i+=2) { // Note that $i is preserved between yields. yield $i; } } // calling the gen_even_numbers function $generator = gen_even_numbers(); // iterating over the yeilded values of the gen_even_numbers function print( " The yeilded values of the generator function are : \n "); foreach ($generator as $value) { print( " $value\n "); } ?>
Sortie :
Comme dans le programme ci-dessus, la fonction gen_even_numbers() est créée pour trouver les nombres pairs entre 2 et 10 et donner ou retourner lorsqu'elle appelle de manière itérative. À chaque itération, il renvoie les valeurs une par une et qui s'affichent également, comme on peut le voir dans le résultat.
Ensuite, nous écrivons le code PHP pour comprendre le mot-clé PHP rendement, où le mot-clé rendement est utilisé pour générer plusieurs valeurs à partir de la fonction génératrice, et cette fonction génératrice appelle à l'intérieur d'une autre fonction génératrice, comme ci-dessous –
Code :
<?php // creating function to generate even numbers in between 2 to 10 function gen_even_numbers() { for ($i = 2; $i <= 10; $i+=2) { // Note that $i is preserved between yields. yield $i; } } // creating function to call gen_even_numbers function function call_gen() { yield 2; yield from gen_even_numbers(); yield 10; } // calling the call_gen function $generator = call_gen(); // iterating over the yeilded values of the call_gen function print( " The yeilded values of the generator function by foreach loops are : \n "); foreach ($generator as $value) { print( " $value\n "); } print("<br>"); print( "The yeilded values of the generator function by iterator_to_array are : \n "); var_dump(iterator_to_array(call_gen())); ?>
Sortie :
Comme dans le programme ci-dessus, la fonction gen_even_numbers() est créée pour rechercher et renvoyer les nombres pairs compris entre 2 et 10, puis une autre fonction call_gen() est utilisée pour appeler la fonction gen_even_numbers() en utilisant le rendement de, qui ne réinitialise pas les clés. Plus loin dans le code, l'itération s'effectue de deux manières. La première méthode consiste à utiliser la boucle foreach, qui parcourt les valeurs dans l'ordre au fur et à mesure qu'elles donnent dans la fonction call_gen(), de sorte que les clés ne sont pas réinitialisées et obtiennent la sortie sous la forme 2 2 4 6 8 10 10. Où comme la deuxième façon utilise la méthode iterator_to_array(), qui renvoie un tableau à clés par défaut et peut éventuellement conduire à des résultats inattendus, que nous pouvons voir dans la sortie.
Ensuite, nous écrivons le code PHP pour comprendre le mot-clé PHP rendement, où le mot-clé rendement est utilisé dans la fonction générateur de référence, comme ci-dessous –
Code :
<?php // creating function to generate even numbers in between 2 to 10 function &gen_even_numbers() { $i = 2; while($i <= 10) { // yield does not come out from the loop or function yield $i; $i+=2; } } // calling the gen_even_numbers function $generator = gen_even_numbers(); // iterating over the yeilded values of the call_gen function print( " The yeilded values of the reference generator function are : \n "); foreach ($generator as &$value) { print( " $value\n "); } ?>
Sortie :
Dans le programme ci-dessus, la fonction gen_even_numbers() est une fonction de référence car elle est préfixée par le « & » ; il est utilisé pour rechercher et renvoyer les nombres pairs entre 2 et 10. Ensuite, on parcourt l'objet de retour de cette fonction, et à chaque fois la valeur itérée est stockée dans une variable qui est à nouveau préfixée par le « & ».
Le mot-clé PHP rendement est un mot-clé intégré utilisé pour créer une fonction génératrice ou renvoyer un.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!