Урок 2. Условные операторы IF и SWITCH.
Программы, которые мы написали в первом уроке, были линейными, т.е. все действия в них выполнялись последовательно, в том порядке, в котором в них располагались операторы. Иногда, однако, требуется пропускать или многократно повторять некоторые из действий, в зависимости от условий. Делать это позволяют управляющие конструкции PHP, к которым принадлежат условные операторы и операторы циклов. Этот урок будет посвящен условным операторам.
Простейшими конструкциями, предназначенными для изменения порядка выполнения операторов, являются условные операторы if, if-else и switch. Применение первых двух из них требует использования логических выражений и логических операторов, которые будут рассмотрены в этом уроке.
Оператор IF.
Синаксис:
if(условие)
{
действия
}
Если “условие” является ИСТИНОЙ, то выполняются “действия”.
Пример:
<?php
$a=14;
$b=12;
if($a>$b)
{
echo "$a больше $b";
}
?>
Данный пример выведет строку “14 больше 12″, так как условие ($a>$b) является ИСТИНОЙ.
Небольшое отступление по поводу записи операторов сравнения и логических операторов:
Операторы сравнения:
| $a == $b | Равно | TRUE если $a равно $b. |
| $a === $b | Тождественно | TRUE если $a равно $b и имеет тот же тип |
| $a != $b | Не равно | TRUE если $a не равно $b. |
| $a <> $b | Не равно | TRUE если $a не равно $b. |
| $a !== $b | Не тождественно | TRUE если $a не равно $b или в случае, если они разных типов |
| $a < $b | Меньше | TRUE если $a строго меньше $b. |
| $a > $b | Больше | TRUE если $a строго больше $b. |
| $a <= $b | Меньше или равно | TRUE если $a is меньше или равно $b. |
| $a >= $b | Больше или равно | TRUE если $a больше или равно $b. |
Логические операции:
| Пример | Название | Результат |
| $a and $b | Логическое ‘и’ | TRUE если и $a, и $b TRUE. |
| $a or $b | Логическое ‘или’ | TRUE если или $a, или $b TRUE. |
| $a xor $b | Исключающее ‘или’ | TRUE если $a, или $b TRUE, но не оба. |
| ! $a | Отрицание | TRUE если $a не TRUE. |
| $a && $b | Логическое ‘и’ | TRUE если и $a, и $b TRUE. |
| $a || $b | Логическое ‘или’ | TRUE если или $a, или $b TRUE. |
Примеры использования логических операций:
Допустим, имеются переменные:
$a=0;
$b=1;
$c=’1′;
| if($a and $b) | Условие НЕ выполняется т.к. одна из переменных FALSE |
| if($a or $b) | Условие выполняется т.к. одна из переменных TRUE |
| if($b xor $c) | Условие НЕ выполняется т.к. обе переменные TRUE |
| if(!$a) | Условие выполняется т.к. переменная $a НЕ TRUE |
| if($a && $b) | Условие НЕ выполняется т.к. одна из переменных FALSE |
| if($a || $b) | Условие выполняется т.к. одна из переменных TRUE |
Оператор IF может проверять не единственное условие. Допустим, нам необходимо выполнять или не выполнять какие либо действия в случае, если одно из нескольких условия – истина.
Оператор IF-ELSE:
Пример:
<?php
$a=10;
$b=12;
if($a>$b)
{
echo "$a больше $b";
}
else if($a<$b)
{
echo "$a меньше $b";
}
else
{
echo "$a равно $b";
}
?>
Мы можем добавлять любое количество условий при помощи оператора else. Если после оператора else нет оператора if, – то используется “любое другое условие”, не затронутое предыдущими операторами if.
В нашем случае можно объяснить работу скрипта таким образом:
ЕСЛИ ($a больше $b) – ТО написать “$a больше $b”;
ИНАЧЕ ЕСЛИ
($a меньше $b) – ТО написать “$a меньше $b”;
ИНАЧЕ (в любом другом случае) – написать “$a равно $b”;
Оператор SWITCH
Оператор switch напоминает ряд операторов IF в одном выражении. Часто бывает необходимо сравнить одну и ту же переменную (или выражение) с несколкьими различными значениями и в зависимости от результата выполнить разные фрагменты кода. Именно для этого и предназначен оператор switch.
Например:
<?php
$a=2;
switch($a)
{
case(1):
echo "$a = 1";
break;
case(2):
echo "$a = 2 ";
break;
case(3):
echo "$a = 3 ";
break;
}
?>
В этом случае отработает case(2)
синтаксис:
switch(переменная)
{
case(значение):
действие, выполняемое если “переменная” равна “значению”;
break;
}
Количество вариантов case может быть сколь угодно большим.
Задачи к уроку 2:
Задача 1
Создать форму, отсылающую в скрипт script.php методом POST три переменные.
В скрипте получить значения этих переменных и вывести результат сравнения этих значений, например $a больше $b, $b меньше $c и т.д.
Задача 2
Задача на проверку введенного пользователем числа. Получить методом GET из адресной строки переменную $a и если эта переменная больше 10, вывести сообщение, в другом случае не выводить сообщения.
Задача 3
Использование оператора switch. Принять переменную $a методом GET из командной строки и выводить различные тектовые сообщения, в зависимости от значения этой переменной. Например, если $a = 1, то вывести “Хорошо”, если $a = 0, то вывести “Плохо” и т.д.
Далее читать после выполнения заданий
Ответы:
Задача 1. Код:
Код HTML формы:
<form method="post" action="script.php">
Переменная a: <input type="text" name="a"><br>
Переменная b: <input type="text" name="b"><br>
Переменная c: <input type="text" name="c"><br>
<input type="submit" value="Отправить">
</form>
Код скрипта script.php
<?php
$a=$_POST['a'];
$b=$_POST['b'];
$c=$_POST['c'];
if($a>$b)
{
echo "$a больше $b <br>";
}
else if($a<$b)
{
echo "$a меньше $b <br>";
}
else
{
echo "$a равно $b <br>";
}
if($a>$c)
{
echo "$a больше $c <br>";
}
else if($a<$c)
{
echo "$a меньше $c <br>";
}
else
{
echo "$a равно $c <br>";
}
if($b>$c)
{
echo "$b больше $c <br>";
}
else if($b<$c)
{
echo "$b меньше $c <br>";
}
else
{
echo "$b равно $c <br>";
}
?>
Задача 2. Код:
Код скрипта script.php
<?php
$a=$_GET['a'];
if($a>10)
{
echo "$a Больше 10";
}
else
{
exit;
}
?>
Обращаемся к скрипту, посылая в адресной строке переменную $a: http://vash_site.ru/script.php?a=12
Задача 3. Код:
<?php
$a=$_GET['a'];
switch($a)
{
case(0):
echo 'Плохо';
break;
case(1):
echo 'Хорошо';
break;
case(2):
echo 'Отлично';
break;
}
?>
Обращаемся к скрипту, посылая в адресной строке переменную $a: http://vash_site.ru/script.php?a=1
Контрольные вопросы по уроку 2:
- Что такое условные операторы. Перечислите их типы.
- Синтаксис условных операторов IF, IF-ELSE и SWITCH
- В чем отличие использования IF от SWITCH
- Перечислите операторы сравнения и приведите примеры использования
- Если $a=0; $b=1; $c=2, будет ли условие ($a>$b || $b<$c) TRUE или FALSE
- Если $a=0; $b=1; $c=2, будет ли условие ($a>$b && $b<$c) TRUE или FALSE
Рекомендую ответы на вопросы записывать в тетрадь…
Спасибо за внимание!





Добавить комментарий
Вы должны войти