> Что происходит при несовпадении типов и как происходит проверка типов в PHP (PHP)
Уровень: middle · Роль: backend · Язык: PHP · Категория: Технические вопросы
Компании: vanta
Стек: PHP
> Пример ответа
В PHP проверка типов происходит динамически, но с версии 7.0 введена строгая типизация для объявлений типов. При несовпадении типов поведение зависит от контекста:
-
Нестрогий режим (по умолчанию): PHP пытается автоматически привести значение к ожидаемому типу. Например, если функция ожидает
int, а передана строка"123", она будет преобразована в число 123. Если преобразование невозможно (например,"abc"вint), значение станет 0 или вызовет ошибку уровняE_WARNINGв PHP 8+. -
Строгий режим (
declare(strict_types=1)): PHP выбрасываетTypeErrorпри любом несоответствии типов, без попыток приведения. Например, передача строки вместо целого числа вызовет фатальную ошибку. -
Проверка типов выполняется:
- Для параметров функций и методов (начиная с PHP 5).
- Для возвращаемых значений (с PHP 7).
- Для свойств классов (с PHP 7.4).
- Встроенные функции также проверяют типы, но в нестрогом режиме могут приводить их.
Пример:
PHPfunction add(int $a, int $b): int {return $a + $b;}// В нестрогом режиме: add("5", "10") вернет 15.// В строгом режиме: add("5", "10") вызовет TypeError.
Кроме того, с PHP 8.0 введены union-типы (например, int|string), а с PHP 8.1 - intersection-типы, что расширяет гибкость проверки.
> Похожие задачи по PHP
Для чего нужны магические методы в PHP
В чем отличие массивов в PHP от массивов в других языках
Расскажите про типизацию в PHP
Что происходит в контроллере после получения запроса
> Похожие задачи по backend
Для чего нужны магические методы в PHP
В чем отличие массивов в PHP от массивов в других языках
Расскажите про типизацию в PHP
Что происходит в контроллере после получения запроса
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью