Оператор switch в php

При проверке большого количества условий даже использование оператора if...elseif может стать несколько утомительным. В таких случаях на по­мощь приходит оператор switch, предназначенный для сравнения заданного выражения с различными вариантами значений.

Оператор начинается с ключевого слова switch, за которым в скобках запи­сывается некоторое выражение. Далее после ключевого слова case перечисля­ются возможные варианты значений. В случае совпадения результата вычисле­ния выражения с каким-либо значением, выполняются операторы, записанные ниже, вплоть до оператора break. Если результат вычисления выражение не совпал ни с одним из значений, заданных после case, выполняются операто­ры, расположенные после ключевого слова default. Впрочем, секция default может и отсутствовать, тогда в таком случае никаких действий не выполняется. Ниже приведен пример использования оператора switch для анализа темпера­тур:

code: #php
$temperature = 25;
switch ($temperature) {
  case 25 :
    echo "Приятная погода";
  break;
 
  case 26:
    echo "Все еще приятная погода";
  break;
 
  case 27 :
    echo "Становится теплее";
  break;
 
  default :
    echo "Температура за заданными пределами";
  break;
}

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

Приятная погода

Следует иметь в виду, что после case могут располагаться только значения целого, вещественного или строкового типов.

Но что если требуется выполнить одно и то же действие при нескольких зна­чениях выражения? В этом случае можно использовать несколько подряд иду­щих конструкций case. Это иллюстрирует пример ниже, в котором температура анализируется на принадлежности диапазонам 24-26, 27-29 и т. д.

code: #html
<HTML>
<HEAD>
<TITLE>Использование оператора switch </TITLE>
</HEAD>
<BODY>
<H1>Использование оператора switch </H1>

$temperature = 27;
switch  ($temperature) {
  case 24: case 25: case 26:
    echo "Приятная погода";
  break;
 
  case 27: case 28: case 29:
    echo "Все еще приятная погода";
  break;
 
  case 30: case 31: case 32:
    echo "Становится жарковато";
  break;
 
  default:
    echo "Температура вне заданных пределов";
}
?>
</BODY>
</HTML>

На рисунке представлен результат выполнения этого примера:

пример выполнения оператора switch
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: