TGViewer
Библиотека собеса по PHP | вопросы с собеседований Библиотека собеса по PHP | вопросы с собеседований @php_interview_lib · 3.1K subscribers
Post #839 1.09K
Что такое Union Types в PHP 8 и как их использовать?

🔍 Union Types в PHP 8 — это возможность указывать, что параметр функции или метод может быть нескольких типов данных одновременно. Это расширяет возможности типизации в PHP и помогает лучше контролировать входные данные, улучшая читаемость и поддержку кода.

💡 Что такое Union Types?
Union Types позволяют объявить, что параметр функции или возвращаемое значение может быть одного из нескольких типов. Вместо того чтобы указывать только один тип, можно указать несколько, разделяя их вертикальной чертой (|).
Пример:

function processValue(int|string $value): void {}

🛠️ Как это работает?

Множественные типы:
Вы можете указать несколько типов для аргументов или возвращаемых значений. Например, параметр может быть как строкой, так и числом.

function handle(int|string $input): int|string {}

Применение к параметрам и возвращаемым значениям:
Union Types могут применяться как к параметрам функций, так и к их возвращаемым значениям.

function calculate(int|float $number): float|int { return $number * 2;}


Строгая типизация:
Union Types работает с строгой типизацией (если она включена в конфигурации PHP), что означает, что типы данных должны быть точно такими, как указано.

✅ Преимущества Union Types:
Гибкость: Позволяет описывать более гибкие функции, которые могут работать с разными типами данных.

Чистота кода: Код становится более читаемым и безопасным, поскольку типы явно указаны.

Улучшенная поддержка IDE: IDE может лучше помогать с автодополнением и проверкой типов, так как информация о типах доступна.

⚠️ Ограниения:
Не поддерживает сложные типы: Union Types не могут быть использованы для сложных типов, таких как массивы с разными типами элементов или объектами с различными интерфейсами.

Поддержка только с PHP 8.0 и выше: Не работает в старых версиях PHP.
  • ❤ 1
  • 👍 1
More from @php_interview_lib
  1. Sep 15, 2026❓ Расскажите о паттерне Bridge Bridge — это структурный паттерн, который разделяет абстрак…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Aug 4, 2026Какова разница между «cookie» и «session»? В PHP «cookie» и «session» — это механизмы упра…
  4. Aug 4, 2026👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах…
  5. Aug 4, 2026Один доступ вместо вечного выбора между «нужно для работы» и «давно хотелось изучить» 👇
  6. Jul 31, 2026❓ Объясни разницу между Gate и Policy в Laravel? Оба инструмента для авторизации, но с раз…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →