Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 01.04.2025)
916770
солдат
370
самолетов
335
вертолетов
10505
танков
21856
ББМ
25552
артиллерия
1123
ПВО
1347
РСЗО
42646
машин
28
корабли и катера
Уроки PHP – описание оператора switch (переключение)
Опубликовано

Уроки PHP – описание оператора switch (переключение)

 

 

Оператор switch оценивает условие и предоставляет несколько точек принятия решения, в зависимости от значения. Оператор switch аналогичен серии операторов if/else для одного и того же выражения. Если вам нужно сравнить одну и ту же переменную (или выражение) со многими различными значениями и выполнять различные фрагменты кода в зависимости от значения, тогда вам отлично подойдет оператор switch.

В сегодняшней статье мы рассмотрим оператор switch (переключение) и сравним его с операторами if/else и elseif.

 

 

Ниже представлен простой пример переключения между различными условиями с помощью операторов if и elseif.

<?php
if ($raining) {
  // надеть резиновые сапоги
} elseif ($snowing) {
  // надеть теплые ботинки
} elseif ($sunny) {
  // надеть сандалии
} else {
  // оставаться дома
}
?>

 

 

Здесь мы оцениваем только три результата: идет дождь, идет снег или на улице солнечная погода. Также мы учли с помощью оператора else все другие результаты.

 

Рассмотрим другой вариант проверки, например, если нам нужно знать, какой сегодня день недели (и, соответственно, выполнить какое-то действие):

<?php
$day = date('N'); // получаем текущий день недели (его номер)
if ($day == 1) {
  echo "Сегодня понедельник";
} elseif ($day == 2) {
  echo "Сегодня вторник";
} elseif ($day == 3) {
  echo "Сегодня среда";
} elseif ($day == 4) {
  echo "Сегодня четверг";
} elseif ($day == 5) {
  echo "Сегодня пятница";
} elseif ($day == 6) {
  echo "Сегодня суббота";
} else {
  echo "Сегодня воскресенье";
}
?>

 

Больше информации по работе с датами в PHP вы найдете здесь.

 

 

В данном примере не очень много вариантов результатов, но их становится все труднее читать. Представьте себе, что таких результатов несколько десятков?

В таком случае вам нужно попробовать использовать оператор переключения (switch). Он очень похож на оператор if/elseif в том, что он принимает условие и предоставляет несколько точек принятия решения, но его гораздо легче читать и поддерживать.

 

Давайте для приведенного выше примера будем использовать оператор switch:

<?php
$day = date('N'); // получаем текущий день недели (его номер)
switch ($day) {
 case 1:
  echo "Сегодня понедельник";
  break;
 case 2:
  echo "Сегодня вторник";
  break;
 case 3:
  echo "Сегодня среда";
  break;
 case 4:
  echo "Сегодня четверг";
  break;
 case 5:
  echo "Сегодня пятница";
  break;
 case 6:
  echo "Сегодня суббота";
  break;
 default:
  echo "Сегодня воскресенье";
}
?>

 

 

Здесь концепция такая же, как и в операторе if: он проверяет условие (в данном примере значение дня) и проверяет его по каждому оператору case. Если условие совпадает с оператором case, будет выполнен код в этом блоке. Только учтите, что PHP будет продолжать выполнять операторы до конца блока switch либо до тех пор, пока не встретит оператор break. Если вы не напишете оператор break в конце секции case, PHP будет продолжать исполнять команды следующих секций case.

Также здесь используется оператор default, который вступает в силу, когда не сработал ни один из других операторов case.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Быстрый доступ по сайту SebWeo
Угости меня кофе