PHP: Выражение match в PHP 8+
Выражение 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'] };
Комментарии