Sobes.tech
Middle+

Cari faylda yalnız bir obyektin olduğunu generatorda necə həyata keçirirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

PHP-də Generator (Generator) iteratordan ibarətdir və bu, funksiyanın icrasını dayandırmağa və daha sonra davam etdirməyə imkan verir. foreach dövründə istifadə olunduqda, hər zaman yalnız bir Generator obyekt ilə işləyir. Hər yield çağırışında, funksiya öz vəziyyətini (yerli dəyişənlər, icra mövqeyi) "xatırlayır" və dəyər qaytarır, bu da iterasiyanın elementini yaradır. foreach dövrəsinin növbəti iterasiyasında, funksiya dayandırıldığı yerdən davam edir. Əslində, Generator obyekti vəziyyətli obyekt kimi çıxış edir və iterasiyanın vəziyyətini idarə edir.

<?php

function myGenerator() {
    yield 1; // Funksiya dayandırılır və 1 qaytarır
    echo "1-dən sonra davam\n";
    yield 2; // Funksiya dayandırılır və 2 qaytarır
    echo "2-dən sonra davam\n";
    yield 3; // Funksiya dayandırılır və 3 qaytarır
}

$generator = myGenerator(); // Bir Generator obyekti yaradılır

foreach ($generator as $value) {
    echo "Alınan dəyər: " . $value . "\n";
}

// Hər zaman, $generator dəyişəni Generator tipli obyekt saxlayır.
// Bu, yaradılan dəyərlər üzərində iterasiya prosesini idarə edir.

?>

Beləliklə, tək bir Generator obyekti vəziyyət və addım-addım məlumat alma məntiqini kapsülləyir, bu da potensial olaraq böyük məlumat dəstlərini tam yaddaşa yükləmədən işləməyə imkan verir.