> Расскажите про типизацию в PHP (PHP)

Уровень: senior · Роль: backend · Язык: PHP · Категория: Технические вопросы

Компании: vanta

Стек: PHP

> Пример ответа

Типизация в PHP прошла долгий путь от динамической слабой к строгой. Начиная с PHP 7, мы получили возможность объявлять типы для аргументов функций, возвращаемых значений и свойств классов. Это позволяет писать более предсказуемый и самодокументируемый код.

В PHP существует два режима: принудительная (coercive) типизация по умолчанию и строгая (strict) - включается директивой declare(strict_types=1);. В принудительном режиме PHP пытается автоматически привести значение к нужному типу (например, строка "123" станет int 123). В строгом режиме любое несоответствие типов вызывает фатальную ошибку TypeError.

Поддерживаемые типы: скалярные (int, float, string, bool), специальные (void, never, mixed, null), а также классы, интерфейсы, callable, iterable, array и union-типы (например, int|string). С PHP 8 появились именованные аргументы и mixed-тип, а с PHP 8.1 - intersection-типы и readonly-свойства.

Пример:

PHP
declare(strict_types=1);
function calculateTotal(float $price, int $quantity): float {
return $price * $quantity;
}

Типизация повышает надёжность кода, упрощает рефакторинг и улучшает работу IDE. Однако важно помнить, что даже в строгом режиме PHP не проверяет типы на этапе компиляции - только в рантайме.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью