Уроки 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
.
Последние посты
Генри Форд
Человек имеет два мотива поведения — один настоящий и второй, который красиво звучит Генри Форд…
Фридрих Ницше
Не нужно додумывать слишком много. Так вы создаете проблемы, которых изначально не было Фридрих Ницше…
Такой разный инвертор! Выбираем между кондиционерами Inverter, Inverter DC и Full DC
Лето в разгаре, а значит самое время задуматься о покупке кондиционера. Но как не потеряться…
Омар Хайям
Настоящий друг — это человек, который в глаза тебе выскажет все, что о тебе думает,…
Полезные советы по выбору раздвижной двери
Следует знать, что функциональность и дизайн работают рука об руку, когда вы используете раздвижную дверь.…