Выбор ответа Junior Исключения и ошибки обновлено
TypeError и строгий режим
Вопрос
Функция объявлена как function add(int $a, int $b): int. Что будет при add("5", "x") без strict_types?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: TypeError: "x" нельзя привести к int. В нестрогом режиме PHP приведёт числовую строку "5" к int, но нечисловую "x" привести не может и бросит TypeError.
Варианты ответа
TypeError:"x"нельзя привести кintправильный ответ- Вернёт 5, а
"x"молча станет нулём - Вернёт строку
"5x"после конкатенации - Предупреждение
Warningи результатnull
Разбор
В нестрогом режиме PHP приведёт числовую строку "5" к int, но нечисловую "x" привести не может и бросит TypeError. В строгом режиме упала бы уже "5". Молчаливого нуля для параметров с типом нет, это поведение только у явного приведения (int).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.