Оператор switch по своей логике очень напоминает конструкцию if else. Но оператор switch более удобен, когда существует несколько вариантов событий для одной переменной.
Ну, например, у нас есть переменная «друг», и в зависимости от значения этой переменной, у нас возникает несколько вариантов приветствий:
Если ты Вася – Привет Вась, проходи!;
Если ты Петя – Здорово, Петюня, давай к нам!;
Если ты Маша – Добро пожаловать, Машенька! ;
И т.д.
В прошлом уроке мы рассматривали с вами простейший сценарий авторизации с помощью конструкции if else. Напомню код нашего сценария, немного приукрасив его:
<html>
<head>
<meta charset="utf-8">
<title>Простая авторизация</title>
</head>
<body>
<h1>Заходи в наш клуб!!!</h1>
<form action="" method="POST">
<p>Как тебя зовут? <input type="text" name="name"></p>
<p><input type="submit" name="submit" value="Войти"></p>
</form>
</body>
</html>
<?php
$name = $_POST['name'];
if($name =="Вася"){
echo "Ну здравствуй"." ".$name.", "."проходи!";
}
elseif ($name =="Петя"){
echo 'Здарово Петюнь, давай к нам!';
}
elseif ($name =="Маша"){
echo 'Добро пожаловать, Машенька!';
}
else {
if ($name=$_POST['name']){
echo 'А мы тебя,'.' '.$name.', '. 'не знаем!';
}
}
?>
В этом уроке мы рассмотрим этот же сценарий, только используем переключатель switch.
<head>
<meta charset="utf-8">
<title>Switch</title>
</head>
<body>
<h1>Заходи в наш клуб!!!</h1>
<form action="" method="POST">
<p>Как тебя зовут? <input type="text" name="name"></p>
<p><input type="submit" name="submit" value="Войти"></p>
</form>
<?php
$name=$_POST['name'];
switch($name){
case 'Вася':
echo 'Ну, здравствуй Вася, проходи!';
break;
case 'Петя':
echo 'Здарово Петюнь, давай к нам!';
break;
case 'Маша':
echo 'Добро пожаловать, Машенька!';
break;
default:
if ($name=$_POST['name']){
echo 'А мы тебя,'.' '.$name.', '. 'не знаем!';
}
}
?>
</body>
</html>
Ну и на закуску
Простейший калькулятор на PHP.
//объявляем переменные
$num1=(int)$_POST['num1'];
$num2=(int)$_POST['num2'];
$operator=$_POST['operator'];//пишем переключатель оператора
switch($operator) {
case "+": //если оператор'+',
$result = $num1+$num2; //то результат = число1+число2
break;
case "-": //если оператор'-',
$result = $num1-$num2; //то результат = число1-число2
break;
case "*": //если оператор'*',
$result = $num1*$num2; //то результат = число1*число2
break;
case "/": //если оператор'/',
if($num2==0) { //если число 2 = 0,
$error = "Делить на ноль нельзя!";//результат будет выдавать ошибку
$result = false;
break;
}
$result = $num1/$num2; //то результат = число1/число2
break;
default:
$result=false; //иначе результата не будет
}
?>
<html>
<head>
<meta charset="utf-8">
<title>Калькулятор</title>
</head>
<body>
<h1>Калькулятор</h1>
<form action="" method="POST">
<p>число 1<input type="text" name="num1"></p>
<p>оператор<input type="text" name="operator"></p>
<p>число 2<input type="text" name="num2"></p>
<p><input type="submit" name="submit" value="Считать"></p>
</form>
<p><?php echo $num1.$operator.$num2.'='.$result.$error;?></p>
</body>
</html>