Назад к вопросам
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 удобен для чистого и безопасного сопоставления значений с результатами.