Sobes.tech
Middle

PHP-də generator necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

Generator funksiyası, iterator qaytaran funksiyadır. Bu, bütün massivni yaddaşə yükləmədən məlumat toplusunu keçməyə imkan verir və yield açar sözündən istifadə edir. Hər yield çağırışında, funksiyanın icrası dayandırılır, dəyər geri qaytarılır və funksiyanın vəziyyəti saxlanılır. Növbəti next() çağırışında, iteratorun icrası dayandırıldığı yerdən davam edir.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // İcraatı dayandırır və dəyəri geri qaytarır
    }
}

$numbers = numberGenerator(5);

foreach ($numbers as $number) {
    echo $number . " "; // Nəticə: 1 2 3 4 5
}

?>

Üstünlüklər:

  • Yaddaş qənaəti: Böyük məlumat həcmlərini tam yaddaşa yükləmədən emal etməyə imkan verir.
  • Lazımi zaman yükləmə: Dəyərlər tələb olunduqda, sorğu əsasında yaradılır.
  • Bəzi tapşırıqlar üçün performansın yaxşılaşdırılması, məsələn, böyük faylların oxunması.

Böyük kolleksiyalar üzərində iterasiya etmək, faylları sətir-sətir oxumaq, sonsuz ardıcıllıqları həyata keçirmək üçün istifadə olunur.