Оператор switch-case — условный оператор, позволяющий проверить одну переменную на множество значений, в отличие от оператора if-else.
Запись оператора switch-case
Объявляем переменную с любым значением (число, строка, булево значение). Затем записываем оператор:
switch (переменная) {
case значение1:
// Код, выполняемый, если переменная равна значению1
break;
case значение2:
// Код, выполняемый, если переменная равна значению2
break;
// ... можно добавить любое количество case
default:
// Код, выполняемый, если переменная не совпадает ни с одним из значений case
break;
}
Ключевое слово switch следует за скобками, в которых указывается проверяемая переменная. Фигурные скобки обязательны. Внутри них находятся различные case (случаи). В каждом case указывается значение для сравнения с переменной. Важно: сравнение происходит только на точное совпадение. Операторы сравнения >, <, >=, <=, != здесь недопустимы.
После двоеточия (:) начинается код, выполняемый при совпадении. Ключевое слово break завершает выполнение текущего case и выход из switch. Без break выполнение продолжится в следующий case.
Пример использования
Рассмотрим пример:
$x = 6;
switch ($x) {
case 5:
echo "Variable equals 5";
break;
case 9:
echo "Variable equals 9";
break;
case 6:
echo "Variable equals 6";
break;
case 4:
echo "Variable equals 4";
break;
default:
echo "Default case";
break;
}
В этом примере переменная $x равна 6. Поэтому выполнится только код в case 6, выведя на экран «Variable equals 6». Остальные case пропущены. Если бы значение $x было 4, вывелось бы «Variable equals 4», а если бы $x не совпадало ни с одним из case, выполнился бы default, выведя «Default case».
break и default
Ключевое слово break обязательно для каждого case, если требуется выполнить только один case. Его можно опускать только в блоке default. При отсутствии break выполнение перейдет к следующему case. default выполняется, если ни один из case не совпал с проверяемой переменной. Он аналогичен else в операторе if-else. Наличие default не обязательно.
switch-case против if-else
- if-else: Используйте для проверки на >, <, >=, <=, ==, !=.
- switch-case: Используйте для проверки одной переменной на множество точных значений. Хотя if-else также может выполнить эту задачу, switch-case часто выглядит проще и читабельнее. Выбор зависит от конкретной задачи и личных предпочтений.
Оператор switch-case — удобный инструмент для обработки одной переменной с множеством возможных значений. Его использование упрощает код и делает его более читабельным в соответствующих ситуациях. Понимание принципов работы switch-case и break/default необходимо для эффективного программирования на PHP.