Что такое тип mixed в PHP

«Что такое тип mixed в PHP» — вопрос из категории PHP Core, который задают на 28% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тип mixed появился в PHP 8.0 и означает, что параметр, возвращаемое значение или свойство может принимать любое значение любого типа. Это эквивалентно отсутствию проверки типа, но явно указывает на такую возможность в сигнатуре.

Пример использования:

function processInput(mixed $input): void {
    if (is_string($input)) {
        echo "String: $input";
    } elseif (is_array($input)) {
        print_r($input);
    }
}

Ключевые особенности:

  1. Заменяет старые аннотации @param mixed в PHPDoc
  2. Совместим со строгим режимом типизации (declare(strict_types=1))
  3. Полезен для legacy-кода или функций, которые действительно должны работать с любыми типами
  4. Не является union-типом, это отдельный специальный тип

Использование mixed делает код более явным и документированным, чем отсутствие типа.