سلام یکی از مورادی که هنگام loop زدن روی حجم زیادی از دادهها باعث کاهش مصرف memory میشه استفاده از generatorهاست میخوام بدونم PHP در پس زمینه چطور با generator functionها برخورد میکنه؟!
کد زیر رو نگاه کنید :
function x() { echo 'Ali'; yield 'a'; yield 'b'; };
وقتی من تابع x رو فراخوانی میکنم بدنه تابع اجرا نمیشه و چیزی تو خروجی echo نمیشه و در عوض یک شی generator برمی گردونه. حالا با استفاده از شی generator میتونیم تیکه اول تابع (یعنی از ابتدا تا yield اول) رو اجرا کنیم
$generator = x(); $generator->current(); // Ali
این مثال نشون میده که با این توابع یطور دیگه رفتار میشه
این تیکه تیکه اجرا شدن تابع ، ذخیره کردن state فعلی و... رو شی generator مدیریت میکنه؟ life cycle این generatorها چه شکلیه؟