Оператор switch case match

Оператор switch case match

Оператор switch case так же как и IF является условным. 

С оператором switch можно использовать условие если, с более коротким и удобным кодом.

Если с оператором  IF нам нужно было прописывать условие перед каждым выводом результата, то с оператором switch мы разделяем котлеты от мух. После switch в скобках записываем данные с которыми хотим сравнить, дальше case что_сравнить и знак : или ;
switch ($sravnivaem){  
 case s_etim: 
 echo 'перечисляем что будем сравнивать.'; }

Оператор switch сверяет выражение за выражением и если находит совпадение, выводит результаты пока не встретит команду стоп break

Запишем (Пример с фруктами.)

$gr = 5; // у нас есть 5 груш
 
  $ap = 5; // и 5 апельсин
$fruct = $gr + $ap; // в переменную фрукт запишем количество
switch ($fruct){   //вставляем переменную для сравнения
 
case 12:   // сравниваем если 12 то выведет результат 12,11,10
case 11:  // и если 11 выведет тоже самое
echo ' Торгуем.';  // выводим
case 10: // следующее сравнение, но нету команды стоп, поэтому при совпадении 11 или 12 выведет и 10.
echo ' Можно съездить за фруктами '; //  Если будет 10 то выведется только это выражение.
break; // команда стоп, дальше сверяет по новой. 
case 9:
 
echo ' смотрим какие фрукты нужно докупить. '; // выведет при 9.
case 8: // выведете если 9 и 8
 echo ' Едем на рынок.'; // если будет 8 выведет только это. 
break;
default:  // используется как оператор 
 
echo ' Если нет не одного совпадения.  echo  едим грибы';
 
}

Так же мы можем использовать switch с типом строка.

$esli = 'грибы'; // сверяем с переменной.
switch($esli){  //записываем переменную для условия
 
 case 'грибы';  // если грибы 
 
  echo  ' В роти выросли грибы ням, ням ';  // выводим
break; // команда стоп, иначе выведет вместе с ягодками
case 'ягодки';  // если ягодки
 
echo ' Если грибы не выросли, кушаем ягодки';  //выводим
break;  // стоп иначе пойдем все равно в лес.
default;  //  не обязательно. Если нет ничего выводим.
  echo ' Идем в лес за ягодами и грибами. '; //пошли
 }  

Выражение match 

В php-8 подобно switch есть выражение match, при помощи которого мы можем выполнять сравнения еще боле удобно и быстрее. Давайте запишем условие с ягодами и грибами используя match. 

Результат match записывается в переменную. Сравнение записывается знаком ровно больше => .  Перечисления через запятую, а точку с запятой ставим после закрывающей фигурной скобки. В конце default иначе будет ошибка. Пишем

$result = match ($esli) {  // в переменную записываем результат.
 'грибы' => 'В роти выросли грибы ням ням ',  //  если в переменной грибы, выводим 
'ягодки' => ' Если грибы не выросли, кушаем ягодки',  // если ягодки, выводим 
default => "Идем в лес за ягодами и грибами. " // если ничего, пошли в лес 
};
echo  $result;

А еще можно было вывести результат match сразу, записав условие через. Попробуйте сами изменить в первой строке $result на echo убрав =.  

echo match ()  

Еще c выражением match мы можем  операторы сравнения. Давайте запишем условие из прошлого урока с тернарным оператором.

$edim = '2 грибочка выросло'; // и запишем условие в котором сравним
$esli = match (true){ // если истина то выводим
$edim >= 3 => ' Да едим', // здесь мы сверяем больше либо равно 3 и если истина, то дальше не идет как в switch, а выводится только этот результат. 
$edim <= 3 => ' Ждем пока вырастут еще', // сравниваем так же с 3, но меньше либо равно, иначе при 2 не выведет результат.
default => '', // запишем пустой дефолт чтобы не было ошибки.
};
echo " Если $edim . $esli <p>"; 

Домашнее задание.

Перепишите  (Пример с фруктами.) Используя выражение match

Проверить домашнее задание.

Продолжить просмотр за:
100 Лит
12:35
493
Lit
RSS
Нет комментариев. Ваш будет первым!

Похожий контент

Операторы break, continue и goto в PHPОператоры: break - прервать, continue - про...
В PHP есть альтернативный синтаксис для записи условий и циклов: if, while, for, fo...
Переменная в PHP, как и во многих других языках обозначается знаком $ Имя начинаетс...
Операторы if, else выполнять при условии.Условные операторы if, else выполняют...