yield from (yield from)
کلیدواژه yield from در PHP برای ژنراتورهاست. «ژنراتور (Generator)» یعنی تابعی که مقدارها را مرحله ای می دهد. سپس با foreach می چرخیم و هر مقدار را می گیریم؛ مثل صف غذا در مدرسه.
کاربرد yield from در ژنراتورها
طبق منبع، yield from مقدارهای یک «تکرارگر (Iterator)» را یکی یکی واگذار می کند. سپس وقتی آیتم ها تمام شد، ژنراتور به yield بعدی می رود. بنابراین پیمایش روان تر می شود و کد تمیزتر می ماند.
مثال: واگذاری مقدارها با yield from
در این مثال، سه مقدار اول از آرایه با yield from می آیند. سپس عدد چهار با yield افزوده می شود.
<?php
function countTo4() {
yield from [1, 2, 3];
yield 4;
}
foreach (countTo4() as $number) {
echo $number;
echo "<br>";
}
?>
گام های عملی
- یک تابع ژنراتور تعریف کن.
- برای منبع داده، از
yield fromاستفاده کن. - بعداً اگر لازم بود،
yieldهای جداگانه بده. - با
foreachخروجی ژنراتور را پیمایش کن.
نکته: برای آشنایی با yield و مقایسه مستقیم، صفحه مربوطه را ببین. همچنین پیمایش با foreach انجام می شود.
جمع بندی سریع
yield fromمقادیر یک تکرارگر را واگذار می کند.- پس از اتمام، به
yieldبعدی می رسد. - کد ژنراتور را کوتاه و مرتب نگه می دارد.
- با
foreachبه راحتی پیمایش می شود.