Операторы выбора/ Переключатель switch

Переключатель switch является наиболее удобным средством для организации мультиветвления. Синтаксис переключателя таков:

switch(expression) // переключающее выражение
{
case value1: // константное выражение 1
statements; // блок операторов
break;
case value2: // константное выражение 2
statements;
break;
default:
statements;
}

Управляющая структура switch передает управление тому из помеченных case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Если значение переключающего выражения не совпадает ни с одним из константных выражений, то выполняется переход к оператору, помеченному меткой default. В каждом переключателе может быть не более одной метки default, однако она может отсутствовать вообще. Приведем пример программы с переключателем. В этой программе выводятся названия нечетных целых десятичных цифр от 1 до 9 не меньше заданной, в зависимости от числа, указанного в форме test.html. Форма test.html не отличается от той, что мы уже использовали:

&<form action = "http://localhost/PHP/chapt2/switch.php" method="get"&>
number: &<input type="text" name="number"/&>&<br&>
&<input type="submit"/&>
&</form&>
&<?
switch($number)
{
case 1:
echo ("one ");
case 2: case 3:
echo ("free");
case 4: case 5:
echo ("five");
case 6: case 7:
echo ("seven");
case 8: case 9:
echo ("nine");
break;
default:
echo ("This isn't number or number is &> 9 or &< 1");
}
?&>
Результат выполнения скрипта:

Форма запроса (рис.)
img_php8.gif

Результат выполнения скрипта (рис.)
img_php8_2.gif

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

Кроме уже сказанного о переключателе, приведенная программа демонстрирует действие оператора break, с помощью которого происходит выход из переключателя. Если поместить операторы break после вывода каждой из цифр, то в окне браузера мы увидим название только одной нечетной цифры.

Как видим, после конструкции switch приведен составной оператор, однако это совершенно не обязательно – после switch может находиться любой оператор, помеченный служебным словом case.
Напомним, что составной оператор, это заключенная в фигурные скобки последовательность операторов.

Заметим также, что в PHP в качестве меток case могут использоваться не только литералы, но и сами метки могут быть переменными. В качестве меток case в PHP не могут выступать только массивы и объекты.

<<< - Предыдущая | Cледующая ->>>