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