По порядку Middle Функции, замыкания, генераторы обновлено
Порядок выполнения генератора
Вопрос
Генератор: function g() { echo "A"; yield 1; echo "B"; yield 2; echo "C"; }. Код: $gen = g(); echo "X"; foreach ($gen as $v) echo $v; echo "Y";. Расставьте выводимые фрагменты по порядку.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1A
- 2B
- 3X
- 42
- 5C
- 6Y
- 71
Показать ответ и разбор
Коротко
Вызов g() только создаёт генератор, тело не выполняется: первым печатается X. foreach запускает тело до первого yield (A), получает 1, затем продолжает до следующего (B, 2), затем доходит до конца (C), и цикл завершается: Y.
Правильный порядок
- 1X
- 2A
- 31
- 4B
- 52
- 6C
- 7Y
Разбор
Вызов g() только создаёт генератор, тело не выполняется: первым печатается X. foreach запускает тело до первого yield (A), получает 1, затем продолжает до следующего (B, 2), затем доходит до конца (C), и цикл завершается: Y.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.