Heim > Backend-Entwicklung > PHP-Tutorial > Erfahren Sie in einer Minute, wie Sie yield in PHP nutzen (teilen)

Erfahren Sie in einer Minute, wie Sie yield in PHP nutzen (teilen)

慕斯
Freigeben: 2023-04-10 09:12:01
nach vorne
7985 Leute haben es durchsucht

Ich glaube, dass die meisten Leute immer noch nicht wissen, wie man Yield in PHP verwendet, oder nicht einmal wissen, was Yield ist. In diesem Artikel möchten wir Ihnen einige Fragen zu Yield und der Verwendung von Yield stellen . Um die Probleme zu lösen, auf die wir in PHP gestoßen sind.

Yield löst das Problem

Lösen Sie den Engpass des PHP-Programms. Beim Lesen von Excel-Dateien wird Folgendes angezeigt:

Fatal Error: Allowed memory size of xxxxxx bytes
Nach dem Login kopieren

Also das PHP-Maximum wird festgelegt Laufspeichereinstellungen: ini_set('memory_limit', '200M')

Aber wenn wir eine Datei mit einer Größe von bis zu 5 g lesen, ist unser Laufspeicher möglicherweise überlastet, daher wählen wir yield

Erste Bekanntschaft mit Yield

Run:

<?phpfunction createRange($number){
    $data = [];
    for($i=0;$i<$number;$i++){
        $data[] = time();
    }
    return $data;}$data =createRange(10);foreach($data as $value){
    sleep(1);//这里停顿1秒,我们后续有用
    echo $value.PHP_EOL;}
Nach dem Login kopieren

Erfahren Sie in einer Minute, wie Sie yield in PHP nutzen (teilen)

Zeit Es ist das Gleiche. Wenn yield verwendet wird:

<?phpfunction createRange($number){
    for($i=0;$i<$number;$i++){
        yield time();
    }}$data =createRange(10);foreach($data as $value){
    sleep(1);//这里停顿1秒,我们后续有用
    echo $value.PHP_EOL;}
Nach dem Login kopieren

Erfahren Sie in einer Minute, wie Sie yield in PHP nutzen (teilen)
Das Zeitintervall beträgt eine Sekunde. Am Beispiel von yield wissen wir also, dass der Inhalt der for-Schleife nicht wie im ersten Beispiel im Speicher gespeichert, sondern einzeln verbraucht wird eins.

Beispiel für das Lesen einer Datei

Erstellen Sie eine TXT-Datei und schreiben Sie:

第1行
第2行
第3行
第4行
第5行
第6行
第7行
第8行
Nach dem Login kopieren
<?phpfunction readTxt(){
    # code...
    $handle = fopen("./test.txt", &#39;rb&#39;);

    while (feof($handle)===false) {
        # code...
        yield fgets($handle);
    }

    fclose($handle);}foreach (readTxt() as $key => $value) {
    # code...
    sleep(1);
    echo $value;}
Nach dem Login kopieren

Lesen Sie die Datei mit PHP, sie wird Zeile für Zeile gelesen
Erfahren Sie in einer Minute, wie Sie yield in PHP nutzen (teilen)

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonErfahren Sie in einer Minute, wie Sie yield in PHP nutzen (teilen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage