Maison  >  Article  >  développement back-end  >  Le rôle et les exemples du mot clé rendement en PHP

Le rôle et les exemples du mot clé rendement en PHP

WBOY
WBOYoriginal
2023-06-28 18:44:091432parcourir

Le mot-clé rendement en PHP est un mot-clé introduit dans PHP 5.5. Il peut être utilisé pour créer un générateur à l'intérieur d'une fonction. Les générateurs peuvent être utilisés pour parcourir un grand ensemble de données sans charger l’intégralité de l’ensemble de données en mémoire en même temps.

Le mot-clé rendement est utilisé pour transformer la fonction actuelle en fonction génératrice. À l'intérieur de la fonction génératrice, nous pouvons utiliser l'instruction rendement pour renvoyer une valeur à l'appelant, et l'état d'exécution de la fonction génératrice sera enregistré. La prochaine fois que la fonction génératrice sera appelée, l'exécution continuera à partir de la dernière instruction rendement.

Ensuite, illustrons le rôle du mot-clé rendement à travers un exemple de code.

Tout d'abord, créons une fonction génératrice simple pour générer une séquence d'entiers de 1 à 10 :

function generateNumbers() {
    for ($i = 1; $i <= 10; $i++) {
        yield $i;
    }
}

foreach (generateNumbers() as $number) {
    echo $number . " ";
}

La sortie du code ci-dessus est : 1 2 3 4 5 6 7 8 9 10

Dans cet exemple, le generateNumbers () renvoie un objet générateur. Nous parcourons cet objet générateur via une boucle foreach, et chaque parcours renverra une valeur de l'instruction rendement. L'avantage est que la séquence entière n'a pas besoin d'être stockée en mémoire en une seule fois, mais les valeurs correspondantes sont générées et renvoyées à la demande.

Ensuite, regardons un exemple plus pratique. Supposons que nous ayons besoin de lire un fichier très volumineux, mais que le chargement simultané de l’intégralité du fichier en mémoire entraînera des problèmes de dépassement de mémoire. A ce moment, nous pouvons utiliser la fonction générateur pour lire le fichier ligne par ligne :

function readFileByLine($file) {
    $handle = fopen($file, "r");
    
    if ($handle) {
        while (($line = fgets($handle)) !== false) {
            yield $line;
        }
        
        fclose($handle);
    }
}

foreach (readFileByLine("big_file.txt") as $line) {
    echo $line;
}

Le code ci-dessus lira le contenu du fichier ligne par ligne et renverra le contenu de chaque ligne à l'appelant. De cette façon, nous pouvons lire une ligne à la fois sans charger l’intégralité du fichier en mémoire d’un coup.

En plus d'utiliser le mot-clé rendement pour créer une fonction génératrice à l'intérieur d'une fonction, le mot-clé rendement peut également être utilisé avec des objets itérables pour implémenter des fonctions plus complexes. Grâce au mot-clé rendement, nous pouvons définir nos propres règles d'itération et fournir des méthodes de parcours personnalisées.

Pour résumer, la fonction du mot clé rendement en PHP est de créer une fonction génératrice pour générer et renvoyer des valeurs à la demande. Les fonctions du générateur peuvent être utilisées dans des scénarios tels que le parcours de grands ensembles de données ou la lecture de fichiers volumineux ligne par ligne pour réduire la surcharge de mémoire. L'utilisation du mot-clé rendement peut améliorer l'efficacité de l'exécution du code et réduire la consommation de mémoire.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn