Выбор ответа Middle Функции, замыкания, генераторы обновлено
Статическая переменная функции
Вопрос
Что выведет код?
function counter(): int {
static $n = 0;
return ++$n;
}
echo counter(), ' ', counter(), ' ', counter();
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 1 2 3. static $n = 0 инициализируется один раз и сохраняет значение между вызовами функции в рамках запроса.
Варианты ответа
1 1 10 1 21 2 3правильный ответ- Ошибку: static нельзя внутри функции
Разбор
static $n = 0 инициализируется один раз и сохраняет значение между вызовами функции в рамках запроса. Каждый вызов увеличивает и выводит её: 1, 2, 3. Обычная локальная переменная дала бы 1 1 1. Статические переменные часто используют для простого мемоизирования.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.