Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, Wordpress, Bootstrap
Всем привет!
Продолжаем изучать основы PHP с нуля!
В этом уроке я расскажу вам об операторе условий if else. В буквальном переводе if означаете «если», а else – «иначе». Сама конструкция if else помогает сверять данные и выводить результат (выводить сообщения, выполнять какую-то команду, перенаправлять пользователя на секретную страницу или впускать в админ-панель). Чтобы научиться писать правильно условия и понять конструкцию if else, я наведу жизненный пример, который очень похож на конструкцию if else.
Вы даете своему мозгу команду: как только звучит будильник (6:00), я должен встать, умыться, почистить зубы, одеться и галопом бежать на работу. Если будильник не звонит в 6:00, значит можно спать, так как на работу бежать не нужно.
Вы заметили конструкцию if else? Условием будет установленное время будильника «6:00». Если будильник звонит, то встаем и бежим на работу, если не звонит (иначе, еще говорят ложь), значит, спим дальше.
Таких примеров жизненных можно навести массу, например: если идет дождь, то сижу дома, если нет дождя, тогда беру мяч и иду играть футбол.
Итак, как же можно записать конструкцию if else? Очень просто.
Пойдем поэтапно и начнем с простого условия – оператор if.
Для лучшего понимания я изобразил схему конструкции if в виде рисунка:
Теперь попробуем трансформировать жизненный пример, который я навел выше, в код php.
<?php $weather = "дождь"; //значение if ($weather=="дождь") // условие { echo "Я сижу дома"; // результат } ?>
Если вы сохраните php файл с этим кодом и откроете его через локальный сервер (см. урок №3), то в результате получится:
Я сижу дома
⇒ Разъяснение кода:
В условии я сравнил переменную $weather со значением "дождь" (строка №3). Человеческим языком этот код звучит так: если переменная $weather равна значению "дождь", тогда выводить нужно текст "Я сижу дома". Кстати, напомню вам (если подзабыли урок №8), что знак равенства обозначается двойным знаком «равно», вот так (==). Если к переменной $weather написать другое значение (строка №2), например, снег, тогда в браузере будет пустая страничка, так как условия не были соблюдены.
→ КОД-ШАБЛОН "КОНСТРУКЦИЯ if":
<?php if (условие) { Этот код выполнится, если условие верно } ?>
→ Шпаргалка:
Равенство: ==
Пример: if ($a == $b)
Не равенство: !=
Пример: if ($a != $b)
Больше: >
Пример: if ($a > $b)
Меньше: <
Пример: if ($a < $b)
Больше или равно: >=
Пример: if ($a >= $b)
Меньше или равно: <=
Пример: if ($a <= $b)
Логическое «и»: and
Пример: if ($a ==$b and $c !=$d)
Логическое «или»: or, ||
Пример: if ($a ==$b || $c !=$d)
Теперь попробуем вывести сообщение, если условия не были соблюдены, а именно, если идет дождь, сижу дома, если нет дождя, беру мяч и иду играть футбол. Для лучшего понимания посмотрим рисунок снизу:
Теперь схему переведем в реальный код:
<?php $weather = "солнце"; //значение if ($weather=="дождь") //условие { echo "Я сижу дома"; //результат если условие верно } else { echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно } ?>
Результат:
Я беру мяч и иду играть в футбол
⇒ Разъяснение кода:
В условии я сравнил переменную $weather со значением "дождь" (строка №3), но так как переменной $weather я присвоил значение "солнце" (строка №2), то условие не было соблюдено (значения не одинаковы), а это значит, что будет работать вторая часть кода (else):
else { echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно }
→ КОД-ШАБЛОН "КОНСТРУКЦИЯ if-else":
<?php if (условие) { Этот код выполнится, если условие верно } else { Этот код выполнится, если условие не верно } ?>
Переходим к более сложному – двойное условие if-else.
Давайте на примере создадим проверку пароля и логина.
Цель:
Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке.
Приступим.
Создадим для начала две переменные $logo и $password с соответствующими значениями:
<?php $logo = "StepkinBLOG"; //значение $password = 1234567890; //значение ?>
Теперь создадим двойное условие для проверки переменных $logo и $password:
<?php $logo = "StepkinBLOG"; //значение $password = 1234567890; //значение if ($logo =="StepkinBLOG" and $password == 123) //условие { echo "добро пожаловать в админ-панель"; //результат если условие верно } else { echo "Логин или пароль не верный"; //результат если условие не верно } ?>
Обратите внимание, в условии мы разделили две переменные оператором "AND". Это означает, что две переменные должны быть правильными для выполнения условия, но так как у нас в условии не совпадает пароль (стока№4), значит, условие неверное и на экране вы увидите вот такое сообщение:
Логин или пароль не верный
Если поменяете значение переменной $password на "123" (строка №3), тогда условия будут полностью соблюдены (строка №4):
<?php $logo = "StepkinBLOG"; // значение $password = 123; //значение if ($logo =="StepkinBLOG" and $password == 123) //условие { echo "добро пожаловать в админ-панель"; //результат если условие верно } else { echo "Логин или пароль не верный"; //результат если условие не верно } ?>
Результат:
добро пожаловать в админ-панель
Вложенная конструкция – это когда внутри конструкции находится еще одна конструкция. Не совсем понятно объяснил? Не беда, на примере все поймете.
Цель:
Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке, если совпадают, тогда еще проверить секретное слово, если секретное слово не совпадает, вывести сообщение об ошибке, если совпадает, тогда вывести сообщение "добро пожаловать в админ-панель".
Приступим:
Создадим для начала три переменные, $logo, $password и $x с соответствующими значениями:
<?php $logo = "StepkinBLOG"; //значение $password = 123; //значение $x = "BlogGOOD"; //значение ?>
Теперь создадим двойное условие для проверки переменных $logo и $password:
<?php $logo = "StepkinBLOG"; //значение $password = 123; //значение $x = "BlogGOOD"; //значение if ($logo =="StepkinBLOG" and $password == 123) //условие №1 { // тут будет еще одно условие с секретным словом } else { echo "Логин или пароль не верный"; //результат если условие не верно } ?>
Теперь под комментарием " // тут будет еще одно условие с секретным словом" (строка №7) пропишите еще одну конструкцию if-else с условием проверки переменной $x:
<?php $logo = "StepkinBLOG"; //значение $password = 123; //значение $x = "Stepa"; //значение if ($logo =="StepkinBLOG" and $password == 123) //условие №1 { // тут будет еще одно условие с секретным словом if ($x = "BlogGOOD") //условие №2 { echo "добро пожаловать в админ-панель"; //результат если условие верно №2 } else { echo "секретное слово не верное"; //результат если условие не верно №2 } } else { echo "Логин или пароль не верный"; //результат если условие не верно №1 } ?>
Так как секретное слово неверное (строка №8), то на экране будет сообщение:
секретное слово неверное
Если вы замените значение переменной $x на "BlogGOOD", тогда и секретное слово будет правдивым:
<?php $logo = "StepkinBLOG"; //значение $password = 123; //значение $x = "BlogGOOD"; //значение if ($logo =="StepkinBLOG" and $password == 123) //условие №1 { // тут будет еще одно условие с секретным словом if ($x = "BlogGOOD") //условие №2 { echo "добро пожаловать в админ-панель"; //результат если условие верно №2 } else { echo "секретное слово неверное"; //результат если условие не верно №2 } } else { echo "Логин или пароль не верный"; //результат если условие не верно №1 } ?>
Так как логин и пароль верный и это значит, что условие было соблюдено, то заработала первая часть кода, где нужно было проверить секретное слово. Так как и секретное слово верное с условием, тогда на экране вы увидите сообщение:
добро пожаловать в админ-панель
→ КОД-ШАБЛОН "ВЛОЖЕННАЯ КОНСТРУКЦИЯ if-else":
<?php if (условие) { Этот код выполнится, если условие верно if (условие) { Этот код выполнится, если условие верно } else { Этот код выполнится, если условие не верно } } else { Этот код выполнится, если условие не верно } ?>
Конструкция elseif - это комбинация конструкций if и else, которая поможет проверить несколько условий подряд.
Синтаксис:
<? if (условие) { действие } elseif (условие) { действие } elseif (условие) { действие } else { Действие, если ни один случай не подошел } ?>
Заметьте, в строках №6 и №10 специально два слова написаны вместе «elseif», если вы их разделите пробелом «else if», то код выдаст ошибку.
Давайте приведу рабочий код с выбором учебника по программированию.
Пример:
<? // Используем elseif $stepkinblog = "PHP"; if ($stepkinblog == "C++") { echo "Вы заказали учебник по C++"; } elseif ($stepkinblog == "JavaScript") { echo "Вы заказали учебник по JavaScript"; } elseif ($stepkinblog == "PHP") { echo "Вы заказали учебник по PHP"; } elseif ($stepkinblog == "JAVA") { echo "Вы заказали учебник по JAVA"; } else { echo "Сделайте выбор"; //Действие, если ни один случай не подошел } ?>
Результат:
Вы заказали учебник по PHP
Способ elseif можно записать так же и вложенной конструкцией if else:
<?php // Используем if-else $stepkinblog = "PHP"; if ($stepkinblog == "C++") { echo "Вы заказали учебник по C++"; } else { if ($stepkinblog == "JavaScript") { echo "Вы заказали учебник по JavaScript"; } else { if ($stepkinblog == "PHP") { echo "Вы заказали учебник по PHP"; } else { if ($stepkinblog == "JAVA") { echo "Вы заказали учебник по JAVA"; } else { echo "Зделайте выбор"; //Действие, если ни один случай не подошел } } } } ?>
Результат такой же, вот только запутаться легче (я 2 раза запутался в своем же коде ) .
Дополнение к уроку (пока знать не обязательно):
Есть еще несколько вариантов, как можно записывать конструкцию if else (альтернативный синтаксис).
Про альтернативный синтаксис я подготовлю целый урок, где все растолкую и покажу. Сейчас просто пробежитесь глазами.
Код №1:
<?php $a = 15; if ($a == 15): ?> <h3> Переменная "$а" содержит значение 15 </h3> <?php endif; ?>
Код №2:
<?php $a = 6; if ($a == 5): echo " Переменная содержит значение 5"; elseif ($a == 6): echo " Переменная содержит значение 6"; else: echo " Переменная не содержит значение 5 и не 6"; endif; ?>
Домашнее задание:
Попробуйте в условии вместо равенства (==) поставить неравенство (!=) или попробовать со знаками больше меньше:
<? $num = 1; if ($num <= 10) { echo "переменная меньше или равна 10"; } else { echo "переменная больше 10"; } ?>
а также замените оператор "AND" на "OR".
Все, жду вас на следующих уроках! Подписывайтесь на обновления блога!