Theme
Primary Color

إنتاج القيم بالتدريج بإستخدام yield

ال yield بتخلي الدالة ترجع Generator ينتج القيم عند المرور عليها بدل تجهيز مصفوفة كاملة

توليد تسلسل صغير

كل خطوة في foreach بتطلب القيمة التالية

<?php

function numbers(): Generator {
    for ($number = 1; $number <= 3; $number++) {
        yield $number;
    }
}
foreach (numbers() as $number) {
    echo $number, "
";
}

النتيجة

1
2
3

توليد مفاتيح وقيم

تقدر تحدد المفتاح مع كل قيمة مولدة

<?php

function scores(): Generator {
    yield "Osama" => 90;
    yield "Mona" => 95;
}
foreach (scores() as $name => $score) {
    echo "$name: $score
";
}

النتيجة

Osama: 90
Mona: 95
ملحوظة

ال Generator بيستهلك أثناء المرور عليه وإستدعي الدالة من جديد لو محتاج تبدأ من الأول

php شرح