Условный оператор if в PHP. Условные конструкции в PHP Php условие if else
Последнее обновление: 1.11.2015
Условные конструкции позволяют направлять работу программы в зависимости от условия по одному из возможных путей.
Конструкция if..else
Конструкция if (условие) проверяет истинность некоторого условия, и если оно окажется истинным, то выполняется блок выражений, стоящих после if. Если же условие ложно, то есть равно false, тогда блок if не выполняется. Например:
0)
{
$result= $a * $b;
echo "результат равен: $result
";
}
echo "конец выполнения программы";
?>
Блок выражений ограничивается фигурными скобками. И так как в данном случае условие истинно (то есть равно true): значение переменной $a больше 0, то блок инструкций в фигурных скобках также будет выполняться. Если бы значение $a было бы меньше 0, то блок if не выполнялся.
Если блок if содержит всего одну инструкцию, то можно опустить фигурные скобки:
0)
echo $a * $b;
echo "
конец выполнения программы";
?>
Можно в одной строке поместить всю конструкцию:
If($a>0) echo $a * $b;
В данном случае к блоку if относится только инструкция echo $a * $b;
else
Блок else содержит инструкции, которые выполняются, если условие после if ложно, то есть равно false:
0)
{
echo $a * $b;
}
else
{
echo $a / $b;
}
echo "
конец выполнения программы";
?>
Если $a больше 0, то выполняется блок if, если нет, то выполняется блок else.
Поскольку здесь в обоих блоках по одной инструкции, также можно было не использовать фигурные скобки для определения блоков:
If($a>0) echo $a * $b; else echo $a / $b;
elseif
Конструкция elseif вводит дополнительные условия в программу:
$a = 5; $b = 2; if($a
Можно добавить множество блоков elseif . И если ни одно из условий в if или elseif не выполняется, тогда срабатывает блок else.
Конструкция switch..case
Конструкция switch..case является альтернативой использованию конструкции if..elseif..else . Например:
$a = 1; if($a==1) echo "сложение"; elseif($a==2) echo "вычитание"; elseif($a==3) echo "умножение"; elseif($a==4) echo "деление";
Будет эквивалентно:
$a = 1; switch($a) { case 1: echo "сложение"; break; case 2: echo "вычитание"; break; case 3: echo "умножение"; break; case 4: echo "деление"; break; }
После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.
В конце блока сase ставится оператор break, чтобы избежать выполнения других блоков.
Если мы хотим также обработать ситуацию, когда совпадения не будет найдено, то можно добавить блок default:
$a = 1; switch($a) { case 1: echo "сложение"; break; case 2: echo "вычитание"; break; default: echo "действие по умолчанию"; break; }
Тернарная операция
Тернарная операция состоит из трех операндов и имеет следующее определение: [первый операнд - условие] ? [второй операнд] : [третий операнд] . В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно true , то возвращается второй операнд; если условие равно false , то третий. Например:
$a = 1; $b = 2; $z = $a
Если значение переменной $a меньше $b и условие истинно, то переменная $z будет равняться $a + $b . Иначе значение $z будет равняться $a - $b
12.09.2017
Пока нет
Всем привет!
Продолжаем изучать основы 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 со значением "дождь " (строка №3). Человеческим языком этот код звучит так: если переменная $weather равна значению "дождь ", тогда выводить нужно текст "Я сижу дома ". Кстати, напомню вам (если подзабыли ), что знак равенства обозначается двойным знаком «равно», вот так (== ). Если к переменной $weather написать другое значение (строка №2), например, снег, тогда в браузере будет пустая страничка, так как условия не были соблюдены.
→ КОД-ШАБЛОН "КОНСТРУКЦИЯ if":
→ Шпаргалка:
Равенство: ==
Пример: if ($a == $b)
Не равенство: !=
Пример: if ($a != $b)
Больше: >
Пример: if ($a > $b)
Меньше: Пример: if ($a
Больше или равно: >=
Пример: if ($a >= $b)
Меньше или равно: Пример: if ($a
Логическое «и»: and
Пример: if ($a ==$b and $c !=$d)
Логическое «или»: or , ||
Пример: if ($a ==$b || $c !=$d)
Теперь попробуем вывести сообщение, если условия не были соблюдены, а именно, если идет дождь, сижу дома, если нет дождя, беру мяч и иду играть футбол. Для лучшего понимания посмотрим рисунок снизу:
Теперь схему переведем в реальный код:
Результат:
Я беру мяч и иду играть в футбол
⇒ Разъяснение кода:
В условии я сравнил переменную $weather со значением "дождь " (строка №3), но так как переменной $weather я присвоил значение "солнце " (строка №2), то условие не было соблюдено (значения не одинаковы), а это значит, что будет работать вторая часть кода (else):
Else { echo "Я беру мяч и иду играть в футбол"; //результат если условие не верно }
→ КОД-ШАБЛОН "КОНСТРУКЦИЯ if-else":
Двойное условие if-else
Переходим к более сложному – двойное условие if-else .
Давайте на примере создадим проверку пароля и логина.
Цель:
Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке.
Приступим.
Создадим для начала две переменные $logo и $password с соответствующими значениями:
Обратите внимание, в условии мы разделили две переменные оператором "AND ". Это означает, что две переменные должны быть правильными для выполнения условия, но так как у нас в условии не совпадает пароль (стока№4), значит, условие неверное и на экране вы увидите вот такое сообщение:
Логин или пароль не верный
Если поменяете значение переменной $password на "123 " (строка №3), тогда условия будут полностью соблюдены (строка №4):
Результат:
добро пожаловать в админ-панель
Вложенные конструкции if-else
Вложенная конструкция – это когда внутри конструкции находится еще одна конструкция. Не совсем понятно объяснил? Не беда, на примере все поймете.
Цель:
Создать условие проверки логина и пароля. Если пароль или логин не совпадают, вывести сообщение об ошибке, если совпадают, тогда еще проверить секретное слово, если секретное слово не совпадает, вывести сообщение об ошибке, если совпадает, тогда вывести сообщение "добро пожаловать в админ-панель ".
Приступим:
Создадим для начала три переменные, $logo , $password и $x с соответствующими значениями:
Теперь создадим двойное условие для проверки переменных $logo и $password :
Теперь под комментарием " // тут будет еще одно условие с секретным словом " (строка №7) пропишите еще одну конструкцию if-else с условием проверки переменной $x :
Так как секретное слово неверное (строка №8), то на экране будет сообщение:
секретное слово неверное
Если вы замените значение переменной $x на "BlogGOOD ", тогда и секретное слово будет правдивым:
Так как логин и пароль верный и это значит, что условие было соблюдено, то заработала первая часть кода, где нужно было проверить секретное слово. Так как и секретное слово верное с условием, тогда на экране вы увидите сообщение:
добро пожаловать в админ-панель
→ КОД-ШАБЛОН "ВЛОЖЕННАЯ КОНСТРУКЦИЯ if-else":
Оператор условия elseif
Конструкция 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 :
Результат такой же, вот только запутаться легче (я 2 раза запутался в своем же коде) .
Дополнение к уроку (пока знать не обязательно):
Есть еще несколько вариантов, как можно записывать конструкцию if else (альтернативный синтаксис ).
Про альтернативный синтаксис я подготовлю целый урок, где все растолкую и покажу. Сейчас просто пробежитесь глазами.
Код №1:
Переменная "$а" содержит значение 15
Домашнее задание:
Попробуйте в условии вместо равенства (== ) поставить неравенство (!= ) или попробовать со знаками больше меньше:
$num = 1; if ($num
а также замените оператор "AND " на "OR ".
Все, жду вас на следующих уроках! Подписывайтесь на обновления блога!
Предыдущая запись
Следующая запись
Конструкция if
Синтаксис конструкции if аналогичен конструкции if в языке Си:
if (логическое выражение) оператор;
?>
Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true ), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false ), то следующий за if оператор исполнен не будет. Приведем примеры:
if ($a
>
$b
) echo
"значение a больше, чем b"
;
?>
В следующем примере если переменная $a не равна нулю, будет выведена строка "значение a истинно (true)":
if ($a
) echo
"значение a истинно (true) "
;
?>
В следующем примере если переменная $a равна нулю, будет выведена строка "значение a ложно (false)":
if (!$a
) echo
"значение a ложно (false) "
;
?>
Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки {...} Пример:
if ($a
>
$b
) {
echo
"a больше b"
;
$b
=
$a
;
}
?>
Приведенный пример выведет сообщение, "a больше b", если $a > $b , а затем переменная $a будет приравнена к переменной $b . Заметим, что данные операторы выполняются в if .
if (логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif
Обратите внимание на расположение двоеточия (: )! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.
Конструкция elseif
elseif - это комбинация конструкций if и else . Эта конструкция расширяет условную конструкцию if-else .
Приведем синтаксис конструкции elseif :
if (логическое_выражение_1)
оператор_1;
elseif (логическое_выражение_2)
оператор_2;
else
оператор_3;
Практический пример использования конструкции elseif :
if ($a
>
$b
) {
echo
"a больше, чем b"
;
} elseif ($a
==
$b
) {
echo
"a равен b"
;
} else {
echo
"a меньше, чем b"
;
}
?>
Условный оператор позволяет пропустить или выполнить некоторый блок кода в зависимости от результата вычисления указанного выражения - условия. Можно сказать, что условный оператор является точкой принятия решения в программе, иногда его также называют оператор ветвления. Если представить, что программа - это дорога, а интерпретатор PHP - путешественник, идущий по ней, то условные операторы можно представить как перекрестки, где программный код разветвляется на две или более дорог, и на таких перекрестках интерпретатор должен выбирать, по какой дороге двигаться дальше.
Оператор if
Оператор if является наиболее простым из операторов ветвлений.
Синтаксис оператора if:
Оператор if сначала вычисляет условное выражение указанное в круглых скобках, результатом этого выражения является булево значение. Если полученный результат является истинным (true), то инструкция выполняется. Если выражение возвращает ложное значение (false), то инструкция не выполняется. В качестве условия может применяться выражение любой сложности.
Если в теле оператора if используется всего одна инструкция, то заключать ее в фигурные скобки можно, но не обязательно. Однако, если нужно выполнить в теле оператора if не одну инструкцию, а несколько, тогда эти несколько инструкций необходимо заключить в фигурные скобки. Обратите внимание на то, что после закрывающей фигурной скобки не следует ставить точку с запятой.
Следующий код демонстрирует применение оператора if:
Операторы if могут быть вложенными в другие операторы if:
Обратите внимание на последний пример: инструкцию не обязательно надо записывать именно под оператором if , если инструкция не большая по размеру, то ее можно записать и в одну строку.
Оператор if else
И так мы узнали, что оператор if позволяет выполнять инструкции в том случае, если условие истинно. Если же условие оказывается ложно, то никаких действий не выполняется. Однако часто бывает необходимо выполнить одни инструкции, если определенное условие истинно, и другие инструкции, если условие ложно. Именно для таких случаев используется ветвление if else . Оно состоит из оператора if , за которым следует блок инструкций и ключевого слова else , за которым следует другой блок инструкций.
Синтаксис оператора if else:
Оператор else не является обязательным. Блок инструкций расположенный после else выполняется по умолчанию, т.е. когда условное выражение в if возвращает значение false . Оператор else не может быть использован отдельно от оператора if . Блок else должен располагаться только после оператора if , его можно рассматривать, как действие по умолчанию.
Немного изменив наш предыдущий пример, мы можем увидеть, как работает оператор if else , если условие возвращает значение false:
Оператор if else может быть вложенным. Такие вложенные условные операторы встречаются на практике достаточно часто. Оператор if является вложенным, если он расположен внутри другого блока if или else . Если в коде используется несколько операторов if подряд, то else всегда относится к ближайшему if:
Последний else не относится к if($a) , так как он находится не во внутреннем блоке, поэтому ближайший к нему получается if($i) . Оператор else расположенный внутри блока относится к if($b) , потому что этот if - является ближайшим к нему.
Конструкция elseif/else if
Оператор if/else вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется выполнить один из многих фрагментов? Если вам нужно проверить несколько условий подряд, то для этого подойдет конструкция elseif или else if (это одна и та же конструкция, просто по разному записана). Формально она не является самостоятельной конструкцией PHP - это лишь распространенный стиль программирования, заключающийся в применении повторяющихся операторов if/else . Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else . Конструкция elseif/else if должна располагаться после оператора if и перед оператором else , если такой имеется.
Здесь проверяется три условия, и, в зависимости от значения переменной $username , выполняются разные действия.
На самом деле в этом фрагменте нет ничего особенного. Это просто последовательность операторов if , где каждый оператор if является частью конструкции else предыдущего if . Для тех кто впервые столкнулся с такой формой записи и ему не очень понятно, как это работает, мы перепишем этот же пример, только в эквивалентной синтаксической форме, полностью показывающей вложенность конструкций:
Всем привет. И сегодня я хочу рассказать вам про условия if и else. Я просто уверен что практически каждый кто сейчас это читает прекрасно знает о чём идёт речь. Ну а для всех остальных я поясню по лучше.
И так if - переводится с английского языка как "Если", в то время как else - иначе. Давайте я сразу покажу вам пример и я думаю очень многим всё сразу станет ясно.
$a = 1;
if ($a == 1) {
echo "a = 1";
} else {
echo "a не равно 1";
} ?>
Думаю многие уже догадались, что результатом данного примера будет появление на экране "a = 1". А всё потому что переменной a в самом начале мы присваиваем значение 1. Т.е. В случае если в скобках после if у нас верное значение, то выполняется скрипт расположенный в первых фигурных скобках {}. Иначе (else) Выполняем из других скобок, вот другой пример.
$a = 2;
if ($a == 1) {
echo "a = 1";
} else {
echo "a не равно 1";
} ?>
В данном примере будет выведено, что a не равняется одному. Но на самом дело это хоть и основные, но простые конструкции. В php так же есть и более компактный вариант записи условий.
Результат данного примера будет совершенно такой же как и в примерах выше. Так же не стоит забывать ещё одну контрукцию
if ($a == 1):?>
Наша a снова имеет значение 1
А теперь более сложная конструкция
Я даже начну сразу с примеров.
if ($a >= 0) {
if ($a == 0) {
?>
Наша А равна нулю
} else { ?>
Наша А больше нуля
}
} else {
echo "Наша переменная меньше нуля=(";
}
?>
Как видите в условия также можно вкладывать и другие условия, вы можете их создавать сколько угодно.
И вот вам ещё один пример.
if ($a == 0){
echo "Переменная равна нулю";
} elseif ($a > 0 && $a
?>
А больше нуля, но обязательно меньше 5
}elseif($a >
= 5 || $a == -5){
echo "Этот тест вы увидите только если А будет больше или равно 5. ИЛИ!! Если А будет равно -5";
}else{?>
А это вы увидите если а будет меньше нуля, и при этом НЕ равно -5.
}?>
На самом деле в последнем примере в последнем else - нет такого условия что $a не должна равняться -5. Просто если а будет -5, то выполнится условие которое было выше и до нижнего не успеет дойти.
А так же если вы всё ещё не поняли, то условия которые прописываются в круглых скобках, используют специальные операторы, о них идёт речь в другой статье. Но к счастью их не так много и я могу повторить прямо здесь.
Логические операторы которые используются в условиях
Равенство, не путать с присвоением (=), на пример $a = 1; - В этом случае в ячейку "a" мы положили единицу, и запись вида $a == 1, то же самое что и 1 == 1.
Не равенство. if(1 != 2){echo "Это условие обязательно сработает потому что 1 не равно 2"; }
|| - ИЛИ. Кстати, если кто эти 2 символа проставляются если в англ раскладке нажать на шифт + косой шлеш (под бакспейсом).
0 || $a
Кстати данный пример можно написать и вот таким вот образом
= $a != 0 ? "А не равно нулю" : ""?>
&& - И. При таком логическом операторе скрипт будет выполнен только если оба условия были выполнены.
0){ echo "Для этого А не должны быть нулём И обязательно должно быть больше нуля"; }?>
Вот тот же пример
= $a >
0 ? "А больше нуля" : ""?>
Только что я рассказал как использовать логические операторы, но есть ещё одно! О чем на самом деле забывают некоторые программисты.
$a = 1;
if($a){
echo "Будет выполнено потому что у нас существует $a и она не пустая. Но если в условие написать $b, то уже выполнится else, потому что $b у нас нет=(";
}else{
echo "У нас всегда будет выполняться первое условие, потому что у нас всегда есть А";
}?>
Суть в том, что при проверке условий возвращается true или false. Если смотреть на верхний пример. В условии if у нас ни как НЕ может быть пустоты. Любая пустота или при не прохождении логического оператора возвращается false, в противном случае вернётся true.
if($a = 1){
echo "Всегда будет верно! потому что присвоение переменной "a" значение, происходит прямо в условии, т.е. у нас присвоется единица, и только потом проверится, если что-то в переменно $a. И разумеется если сейчас вывести $a, то мы увидим ".$a;
}else{
echo "Мы никогда не дойдём до сюда=(";
}?>
На этом пожалуй я и закончу. Всем удачи, помните самое главное, это был php и по этому данный участок кода у вас должен располагаться в ?>
. Разумеется читайте мой блог, в котором я вам расскажу как же всё таки писать отличные сайты и веб-приложения. И даже как их не только писать, а как делать это правильно!