Выбор ответа Middle Функции, замыкания, генераторы обновлено

First-class callable syntax

Вопрос

Что создаёт выражение strlen(...) в PHP 8.1?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Объект Closure для функции strlen. Синтаксис first-class callable f(...) создаёт замыкание из функции или метода: $len = strlen(...), $m = $obj-method(...), Foo::bar(...).

Варианты ответа

  1. Объект Closure для функции strlenправильный ответ
  2. Вызов strlen без аргументов
  3. Строку "strlen"
  4. Ошибку: многоточие допустимо только в объявлении

Разбор

Синтаксис first-class callable f(...) создаёт замыкание из функции или метода: $len = strlen(...), $m = $obj->method(...), Foo::bar(...). В отличие от строки "strlen" или массива [$obj, "method"], он проверяется статическим анализом и учитывает область видимости. Вызова при этом не происходит.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.