Выбор ответа Middle Функции, замыкания, генераторы обновлено
First-class callable syntax
Вопрос
Что создаёт выражение strlen(...) в PHP 8.1?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Объект Closure для функции strlen. Синтаксис first-class callable f(...) создаёт замыкание из функции или метода: $len = strlen(...), $m = $obj-method(...), Foo::bar(...).
Варианты ответа
- Объект
Closureдля функцииstrlenправильный ответ - Вызов
strlenбез аргументов - Строку
"strlen" - Ошибку: многоточие допустимо только в объявлении
Разбор
Синтаксис first-class callable f(...) создаёт замыкание из функции или метода: $len = strlen(...), $m = $obj->method(...), Foo::bar(...). В отличие от строки "strlen" или массива [$obj, "method"], он проверяется статическим анализом и учитывает область видимости. Вызова при этом не происходит.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.