Скрипты, рассмотренные нами на предыдущих уроках, имеют линейную структуру. То есть записанные в них действия выполняются последовательно, от начала до конца.
Схема линейного кода:
Управляющая структура if позволяет, в зависимости от выполнения или невыполнения поставленного условия, скрипту выполнять или не выполнять определенный кусок кода. Одна из основных задач оператора if - это выбор поведения скрипта на основе введенных данных. Например, в зависимости от ответов пользователя определение его оценки, или в зависимости от даты вывод того или иного сообщения на экран.
Структура оператора if:
if(условие)
оператор;
Если значение части «условие» равно TRUE, то выполняется часть «оператор;». Если нужно, чтобы при TRUE выполнялось несколько операторов, то они заключаются в фигурные скобки:
if(условие) {
оператор;
.........
оператор;
}
Схема управляющей структуры if:
(единственный выбор)
Существует также оператор else. Код за оператором else выполняется, если условие в операторе if равно FALSE. Если значение условия в операторе if равно TRUE, то часть else пропускается:
if(условие) {
оператор11;
...........
оператор1n;
}
else {
оператор21;
...........
оператор2n;
}
Схема управляющей структуры if-else:
(двоичный выбор)
Рассмотрим пример. Создадим форму с полем для ввода возраста:
Файл form01.html
<html>
<body>
<h4>Опросник</h4>
<form action="process.php" method="get">
Сколько Вам лет? <input type="text" name="age" />
<p><input type="submit" value="Отправь"/>
</form>
</body>
</html>
Файл process.php
<html>
<body>
<?php
$age = $_GET['age'];
if($age<17)
echo "Вы очень молоды!";
else
echo "Добро пожаловать!";
?>
</body>
</html>
В случаях, когда нужно проверять много условий, пользуются конструкцией if-elseif-else:
if(условие1) {
оператор11;
...........
оператор1n;
}
elseif(условие2) {
оператор21;
...........
оператор2n;
}
elseif(условие3) {
оператор31;
...........
оператор3n;
}
...........
else {
операторn1;
...........
операторnn;
}
Пример:
Файл process2.php
<html>
<body>
<?php
$age = $_GET['age'];
if($age<17)
echo "Вы очень молоды!";
elseif($age<70)
echo "Вы не стары!";
elseif($age==70)
echo "Удивительно!";
else
echo "Очень удивительно!";
?>
</body>
</html>
Для проверки process2.php нужно указать этот файл в параметре action тега <FORM> файла form01.html.
Контрольные вопросы и задания
- Проверьте работу скрипта process.php, изменив условие $age<17 на какое-нибудь другое.
- Проверьте работу скрипта process2.php, добавив еще одну проверку посредством elseif.
- Что вы знаете о логических операциях И (конъюнкция), ИЛИ (дизъюнкция) и НЕ (отрицание)?