إنتاج القيم بالتدريج بإستخدام 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 بيستهلك أثناء المرور عليه وإستدعي الدالة من جديد لو محتاج تبدأ من الأول