Инструкция 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