Часто приходится делать выбор не между двумя, а между несколькими путями решения задачи. Такую ситуацию называют переключателем:
В языке PHP переключатель реализуется оператором:
{
case метка-1: оператор-1;
case метка-2: оператор-2;
case метка-3: оператор-3;
default: оператор-n;
}
где switch - служебное слово переключатель,
case - служебное слово вариант,
селектор - переменная или выражение целого типа (обязательно ставится в скобках);
метка-1, метка-2,… - метки вариантов – значения селектора –
целые числа, символы или имена констант,
break - служебное слово прервать,
default - служебное слово по умолчанию (не обязательно).
Действия оператора:
1. вычисляется значение селектора,
2. это значение отыскивается среди меток вариантов,
3. выполняется оператор, стоящий за найденной меткой,
4. если далее стоит оператор break, то осуществляется выход из переключателя, иначе выполняется следующий оператор в нем,
5. если метка не найдена, то выполняется оператор, стоящий за словом default.
В любой ветви оператора swith могут стоять несколько меток вариантов, разделенных двоеточием:
{
case метка-1: case метка-2: case метка-3: оператор-1;
case метка-4: case метка-5: оператор-2;
case метка-6: оператор-3;
default: оператор-n;
}
Эту структуру можно представить в следующем виде:
{
case метка-1:
case метка-2:
case метка-3: оператор-1;
case метка-4:
case метка-5: оператор-2;
case метка-6: оператор-3;
default: оператор-n;
}
Внимание! Метки вариантов не должны повторяться!
Если в переключателе убрать операторы break, то после выполнения оператора, стоящей за найденной меткой вариантов, выполняются все оставшиеся операторы, в том числе и оператор после слова default:
$i = 5;
switch ($i)
{
case 0: echo “<BR>Это цифра ноль”;
case 1: case 2: echo “<BR>Это цифра один или два”;
default: echo “<BR>Это неизвестная цифра”;
}
При вводе цифры 0 на экран будут выведены сообщения: