Ответ
Тип mixed появился в PHP 8.0 и означает, что параметр, возвращаемое значение или свойство может принимать любое значение любого типа. Это эквивалентно отсутствию проверки типа, но явно указывает на такую возможность в сигнатуре.
Пример использования:
function processInput(mixed $input): void {
if (is_string($input)) {
echo "String: $input";
} elseif (is_array($input)) {
print_r($input);
}
}
Ключевые особенности:
- Заменяет старые аннотации
@param mixedв PHPDoc - Совместим со строгим режимом типизации (
declare(strict_types=1)) - Полезен для legacy-кода или функций, которые действительно должны работать с любыми типами
- Не является union-типом, это отдельный специальный тип
Использование mixed делает код более явным и документированным, чем отсутствие типа.