Генератор (Generator) в PHP реализован как итератор, который позволяет приостанавливать выполнение функции и возобновлять его позднее. Когда генератор используется в цикле foreach, он работает с одним объектом Generator в любой момент времени. При каждом вызове yield, функция "запоминает" свое состояние (локальные переменные, позицию выполнения) и возвращает значение, генерируя элемент итерации. При следующей итерации цикла foreach, функция продолжает выполнение с того места, где остановилась. Фактически, объект Generator представляет собой stateful-объект, управляющий состоянием итерации.
php
Таким образом, единичный объект Generator инкапсулирует состояние и логику пошагового получения данных, позволяя обрабатывать потенциально большие наборы данных без загрузки их целиком в память.