Инструкция switch похожа на серию инструкций if для одного и того же выражения.
Следующие два примера представляют собой два разных способа написания одного и того же: один с использованием серии операторов if и else-if, а другой с использованием оператора switch.
<?php $i=2; if ($i == 0) { echo "$i equals 0 "; } else if ($i == 1) { echo "$i equals 1 "; } else if ($i == 2) { echo "$i equals 2 "; } //using switch switch ($i) { case 0: echo "$i equals 0 "; break; case 1: echo "$i equals 1 "; break; case 2: echo "$i equals 2 "; break; } ?>
Результат:
2 equals 2
2 equals 2
В приведённом примере, $i ─ это переменная, содержащая значение = 2.
Оператор переключения работает так же, как вложенный, если всё остальное работает.
Если условие проверки ($i==2) совпадает, то на выходе будет: 2 равно 2 (2 equals 2).
то же самое для switch ($i) соответствует случаю 2: таким образом, вывод будет: 2 равно 2.
Оператор переключения без разрыва: switch statement without break
<?php $i=0; switch ($i) { case 0: echo "$i equals 0"."<br/>"; case 1: echo "$i equals 1"."<br/>"; case 2: echo "$i equals 2"."<br/>"; } ?>
Результат:
0 equals 0
0 equals 1
0 equals 2
Переменная ($i) содержит значение = 0. Это значение передаётся внутри переключателя. Оно начинает соответствовать регистру. Первый регистр совпадает с первоначально объявленным значением переменной (0). Все инструкции выполняются от case:0 до case:2.
Регистр Switch может содержать пустой оператор, тогда он просто передает управление для следующего регистра.
<?php $i=1; switch ($i) { case 0: case 1: case 2: echo "$i is less than 3 but not negative"; break; case 3: echo "i is 3"; } ?>
Результат: 1 is less than 3 but not negative
Инициализируйте переменную ($i) значением =1.Теперь передайте это значение внутри инструкции switch.
Теперь регистр начинает соответствовать значению переменной инициализации ($i). Поскольку регистр: 1 соответствует. Но это не оператор для выполнения. таким образом, он пропустит регистр, потому что break отсутствует в случае:1.
Теперь оператор case: 2 — выполнить и прервать завершение программы.
Выводом станет case: 2 (оператор) : 1 меньше 3, но не отрицательный.
Использование значения по умолчанию в инструкции Switch
В случае, если какой-либо из вариантов switch не совпадает, выполняется инструкция default.
<?php $i=5; switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; default: echo "i is not equal to 0, 1 or 2"; } ?>
Результат: 5 is not equal to 0, 1 or 2
В данном примере $i является переменной, удерживающей значение = 5. Теперь условие переключения выполняется с переменной $i.
Здесь определены три регистра. он проверяет значение для case0, case1 и case2.
Но выполняется только условие по умолчанию, потому что все три регистра не совпадают. Результат: 5 не равно 0, 1 или 2
Введите первое число, второе число и выбор, произведите вычисление.
<?php $f=$_POST['f']; $s=$_POST['s']; $choice=$_POST['ch']; switch ($choice) { case "+": $sum=$f+$s; echo "Sum=".$sum; break; case "-": $sub=$f-$s; echo "Subtraction=".$sub; break; case "*": $mult=$f*$s; echo "Multiplication=".$mult; break; case "/": $div=$f/$s; echo "Division=".$div; break; default: echo "Invalid choice"; } ?> <form method="post"> Enter first number<input type="text" name="f"/><hr/> Enter second number<input type="text" name="s"/><hr/> Enter your choice<input type="text" name="ch"/><hr/> <input type="submit" value="Show Result"/> </form>
В приведённом выше примере сначала мы создаём форму с помощью HTML-скрипта для приёма входных данных от пользователей. Внутри формы мы создаём три текстовых поля и кнопку отправки.
Логика программы определяется внутри PHP-скрипта. Переменная ($f, $s , $choice) объявляется для хранения значения, которое собирается с помощью $_POST[ ] . $choice используется для выполнения операции (сложение / умножение / деление / вычитание).
Первый ввод числа равен 500, второй ввод числа равен 500, ввод выбора равен «+», Внутри текстового поля выбора введенное значение равно +, поэтому оно будет соответствовать первому регистру и выполнять первый регистр (+). Отображение выходных данных: сумма = 1000