Выбор ответа Junior Типы и строгая типизация спрашивают часто обновлено
Что делает declare(strict_types=1)
Вопрос
Что изменит declare(strict_types=1); в начале файла?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Вызовы из этого файла не приводят скаляры: будет TypeError. Строгий режим влияет на проверку скалярных типов параметров и возвращаемых значений в вызовах, сделанных из этого файла.
Варианты ответа
- Все переменные в файле должны иметь объявленный тип
- Вызовы из этого файла не приводят скаляры: будет
TypeErrorправильный ответ - Сравнение
==в этом файле начнёт работать как=== - Режим включится для всего проекта, если подключить файл первым
Разбор
Строгий режим влияет на проверку скалярных типов параметров и возвращаемых значений в вызовах, сделанных из этого файла. Без него function f(int $x) при f("5") молча приведёт строку. В строгом режиме будет TypeError (исключение: int допускается там, где ждут float). Переменные в PHP не типизируются, == остаётся нестрогим, а директива действует только в своём файле.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.