Уроки 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
.
Последние посты
Как купить автомобиль на аукционе?
Если вас интересует вопрос, можно ли купить автомобиль на аукционе, вот вам краткий ответ: да.… Читать далее
Основные критерии при выборе и покупке телевизора
В данном обзоре мы собрали основные советы и критерии по приобретению телевизора, в одном месте,… Читать далее
На что обратить внимание при выборе фонарика на батарейках
Фонарик на батарейках способен помочь в разных ситуациях, начиная от походов и заканчивая авариями. При… Читать далее
Всесторонний обзор Apple Watch Series 9: в чем его отличия от других поколений
Последняя презентация американской компании продемонстрировала несколько разнообразных новинок. В частности, в середине сентября 2023 года… Читать далее
Как утеплить ребенка на зиму с помощью меховых наушников
Голова и уши – это те части тела, которые больше всего нуждаются в тепле зимой.… Читать далее
Как проходит осмотр у проктолога при различных заболеваниях и как к нему подготовиться?
Проктология специализируется на лечении различных заболеваний ануса и прямой кишки. Такие деликатные проблемы вызывают боли… Читать далее