Скрипты, рассмотренные нами на предыдущих уроках, имеют линейную структуру. То есть записанные в них действия выполняются последовательно, от начала до конца.

Схема линейного кода:

Управляющая структура 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.

Контрольные вопросы и задания

  1. Проверьте работу скрипта process.php, изменив условие $age<17 на какое-нибудь другое.
  2. Проверьте работу скрипта process2.php, добавив еще одну проверку посредством elseif.
  3. Что вы знаете о логических операциях И (конъюнкция), ИЛИ (дизъюнкция) и НЕ (отрицание)?