Middle
PHP'de jeneratör nasıl çalışır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir jeneratör, bir yineleyici döndüren bir fonksiyondur. Bir veri kümesini, yield anahtar kelimesini kullanarak, tüm diziyi belleğe yüklemeden dolaşmaya olanak tanır. Her yield çağrısında, fonksiyonun yürütülmesi duraklatılır, bir değer döndürülür ve fonksiyonun durumu korunur. Bir sonraki next() çağrısında, yineleyici yürütmesi duraklatılan yerden devam eder.
<?php
function numberGenerator($limit) {
for ($i = 1; $i <= $limit; $i++) {
yield $i; // Yürütmeyi duraklatır ve değeri döndürür
}
}
$numbers = numberGenerator(5);
foreach ($numbers as $number) {
echo $number . " "; // Çıktı: 1 2 3 4 5
}
?>
Avantajlar:
- Bellek tasarrufu: Büyük veri hacimlerini, tamamen belleğe yüklemeden işlemeye olanak tanır.
- Tembel yükleme: Değerler, ihtiyaç duyulduğunda, talep üzerine üretilir.
- Belirli görevler için performans artışı, örneğin büyük dosyaların okunması gibi.
Büyük koleksiyonlar üzerinde yineleme yapmak, dosyaları satır satır okumak, sonsuz diziler uygulamak için kullanılır.