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); 
# > Доступ запрещён

PHP Просмотров: 349
Оценить код:

Комментарии

Ваш комментарий будет первым.
Войдите, чтобы оставить комментарий.