Sobes.tech
Назад к вопросам
Junior — Middle
86

Можете объяснить, что делает функция match() в PHP 8 и как она отличается от конструкции switch?

Ответ от нейросети

sobes.tech AI

В PHP 8 функция match() — это выражение, которое позволяет сравнивать значение с несколькими вариантами и возвращать результат. Она похожа на конструкцию switch, но имеет несколько отличий:

  • match возвращает значение, то есть это выражение, а не оператор.
  • В match сравнение строгое (===), в то время как в switch — нестрогое (==).
  • В match не нужно использовать break для предотвращения "проваливания" (fall-through).
  • match требует, чтобы все варианты были покрыты, иначе будет выброшено исключение.

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

$status = 2;
$message = match($status) {
    1 => 'Ожидание',
    2 => 'В процессе',
    3 => 'Завершено',
    default => 'Неизвестный статус',
};
echo $message; // Выведет: В процессе

Таким образом, match удобен для чистого и безопасного сопоставления значений с результатами.