Уроки 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.

 

Recent Posts

Что делать начинающему программисту на старте карьеры?

После завершения начального курса по программированию вы, как начинающий программист, имеете несколько путей для дальнейшего…

23 часа ago

Что поможет сделать ваш сайт более веб-доступным?

Основная цель создания сайта – это поделиться своим контентом со всем миром. Вы хотите, чтобы…

4 дня ago

Фитолампа для зелени на балконе: Ваш секрет для здорового урожая круглый год

Фитолампа для выращивания зелени на балконе: Оптимальные условия для урожая Фитолампа для выращивания зелени на…

5 дней ago

Ключевые моменты собеседования с клиентом по разработке/дизайну сайта

Собеседование – это ценное умение, которое может помочь узнать больше о человеке, какой-либо теме или…

6 дней ago

Печать книги Львов: как быстро и выгодно напечатать книгу от 1 экземпляра

В мире, где индивидуальность имеет значение, возможность напечатать книгу во Львове даже в единственном экземпляре…

1 неделя ago

Экстернат 10–11 класс Украина: современное решение для быстрого и удобного обучения

Сегодня все больше учеников и родителей ищут альтернативу традиционной школе, выбирая более гибкие, индивидуальные и…

2 недели ago