Ответ
Да, в генераторе можно использовать yield break для принудительного завершения генератора. Также можно использовать return с PHP 7.0+, но он должен быть без значения (просто завершает генератор). С PHP 7.4+ можно возвращать значение через return, но это будет доступно только через getReturn().
Пример:
function generator() {
yield 1;
yield 2;
if (someCondition()) {
yield break; // завершает генератор
}
yield 3;
return "Done"; // PHP 7.4+
}
$gen = generator();
foreach ($gen as $value) {
echo $value;
}
echo $gen->getReturn(); // "Done"