PHP: Оператор match
Оператор match — удобный способ работы с условными конструкциями, который появился начиная с PHP 8.0. Этот оператор представляет собой улучшенную версию switch, предлагая более читаемый и компактный синтаксис для выполнения выражений на основе совпадения значений. Оператор match особенно полезен, когда нужно присвоить значение переменной на основе какого-либо условия или когда необходимо выполнить простое ветвление логики без громоздкого использования множественных if или switch.
Оператор match сравнивает значение с различными вариантами и, в случае нахождения совпадения, возвращает соответствующее выражение. Отличительной чертой является то, что match делает строгое сравнение (===), в отличие от switch, который использует нестрогое сравнение (==).
match возвращение значения непосредственно из ветки совпадения.
Пример использования:
# В зависимости от значения $userRole, match возвращает соответствующее сообщение # Если значение не совпадает ни с одним из случаев, используется вариант default $userRole = 'admin'; $message = match ($userRole) { 'admin' => 'У вас есть доступ ко всем функциям.', 'manager' => 'У вас есть доступ к управлению заказами и пользователями.', 'user' => 'У вас есть доступ к базовым функциям.', default => 'Ваша роль не определена в системе.', }; echo $message;
Ещё пример:
# Функция, которая определяет уровень доступа пользователя к определённой странице или функционалу # в зависимости от его возраста и стажа работы function getAccessLevel(int $age, int $experienceYears): string { return match (true) { $age >= 18 && $experienceYears >= 5 => 'Полный доступ', $age >= 18 => 'Ограниченный доступ', default => 'Доступ запрещён', }; } # Вызов функции с различными параметрами echo getAccessLevel(20, 6); # > Полный доступ echo getAccessLevel(19, 2); # > Ограниченный доступ echo getAccessLevel(17, 4); # > Доступ запрещён
Комментарии