Выражение match в PHP 8 и выше - это улучшенная версия оператора switch. Оно предоставляет более чистый и сокращенный синтаксис для проверки выражения на соответствие различным условиям. Кроме того, match является выражением, а значит, его можно использовать для возвращения значения.
Основные преимущества использования match:
- Нет необходимости в break для прекращения выполнения кода в каждом блоке условий.
- Строгая типизация: не происходит неявных преобразований типов.
- Чтение кода становится проще и его объем уменьшается.
Базовый пример:
$number = 1;
$result = match( $number )
{
0 => 'ноль',
1 => 'один',
2 => 'два',
default => 'нет совпадений'
};
echo $result;
// Выведет "один"
С множественными значениями
$day = 'Суббота';
$result = match( $day )
{
'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница' => 'Будний день',
'Суббота', 'Воскресенье' => 'Выходной',
default => 'Неизвестный день'
};
echo $result;
// Выведет "Выходной"
С использованием выражений
$age = 25;
$category = match( true )
{
$age >= 60 => 'Пожилой',
$age >= 18 => 'Взрослый',
default => 'Молодой'
};
echo $category;
// Выведет "Взрослый"
Безопасное получение IP-адреса клиента
$clientIp = match( true )
{
isset( $_SERVER['HTTP_CF_CONNECTING_IP'] ) => $_SERVER['HTTP_CF_CONNECTING_IP'],
isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) => $_SERVER['HTTP_X_FORWARDED_FOR'],
default => $_SERVER['REMOTE_ADDR']
};
Комментарии
0Нашли ошибку или хотите дополнить материал?