Оператор switch
В дополнение к операторам if, рассмотренным в предыдущем разделе, PHP включает четвертый тип условного оператора, называемый оператором switch. Оператор switch очень похож или является альтернативой для команд if...else if...else. Оператор switch проверяет условие. Результат этой проверки определяет, какой case выполняется. switch используется обычно, когда ищут точный (равенство) результат, вместо условия больше или меньше. При проверке диапазона значений должен применяться оператор if.
switch – используйте этот оператор для выбора одного из нескольких блоков кода для выполнения.
Ниже представлен синтаксис оператора switch.
<?php
switch (выражение) {
case "значение1": код, который будет выполнен, если выражение = значение1; break;
case "значение2": код, который будет выполнен, если выражение = значение2; break;
default: код, который будет выполнен, если выражение не равно ни значение1, ни значение2; } ?>
Подобно оператору if строки кода в операторе switch заключаются в фигурные скобки.
Эти скобки определяют начало и конец оператора switch. Следующий пример демонстрирует использование оператора switch.
<?php
$number = 25;
switch ($number) {
case 40: echo "Значение \$number равно 40"; break; case 25: echo "Значение \$number равно 25"; break; default: echo "Значение \$number отлично от 25 и 40";
} ?>
Оператор switch может включать множество операторов case. В предыдущем примере показаны два оператора case. Создается переменная $number, которой присваивается значение 25. Оператор switch используется для сравнения значения $number с другими значениями. Проверяемое (сравниваемое) выражение (в данном случае $number) помещается внутри скобок сразу после оператора switch. Затем вызывается последовательность операторов case для сравнения выражения с другими значениями. Эти значения помещаются сразу после оператора case. (Примечание: если проверяемые значения являются строками, они должны заключаться в кавычки.) За значением, которое сравнивается с выражением, следует двоеточие (:). Операторы case аналогичны конструкциям if и elseif. Если значение оператора case будет true, то выполняется код, связанный с этим оператором, и оператор break. Оператор break приводит к завершению оператора switch. Остальные операторы case проверяться не будут. В конце оператор switch содержит инструкцию default. Она аналогична оператору else. Если ни один из операторов case не будет выполнен (не будет иметь значение TRUE), выполняется оператор default. Здесь одновременно происходит несколько вещей:
- проверяется условие switch и находится значение ($number == 25);
- значение условия передается по очереди операторам case;
- если это значение совпадает со значением case, выполняется код этого блока. Оператор break приводит к завершению оператора switch. Остальные операторы case не проверяются;
- если проверяемое значение не совпадает ни с одним из значений case, выполняется раздел default;
- в приведенном выше примере, так как выражение "значение $number" равно 25, выполняется второй оператор case, и в окне браузера выводится текст "Значение $number равно 25".