Php условие в строке. Условные конструкции в PHP. Логические операции в условии
Сегодня вы научитесь в PHP создавать условия
с помощью оператора if
-else
.
С помощью условий вы можете сделать проверку данных, выводить сообщения при созданном вами условии, перенаправлять пользователя на секретную страницу и т.д.
В конструкции if -else (если-иначе) ничего сложного нет, главное понять, как правильно писать условия, чтобы скрипт их исполнил. Все это, немного, похоже на нашу жизнь. Вот, например:
Вам на работу нужно вставать с понедельника по пятницу в 6:30. Что вы делаете? Вы заводите будильник. Условие, значит, будет таким: если сегодня понедельник – пятница и время 6:30, звонит будильник, мы встаем и делаем определенные действия (одеваемся, пьем кофе с бутербродом, чистим зубы, умываемся и идем на работу).
Как видите простой вид условий - «если , то », если понедельник 6:30, то едем на работу.
Оператор PHP - if
Еще раз закрепим то, что я говорил выше и попробуем по этой схеме на картинке написать код:
"; } echo "С уважением, автор блога Костаневич С.В."; ?>
Сохраните как «if.php » в папку «test-1 » локального сервера (см. ).
Введите в браузере адрес:
https://localhost/test-1/ if.php
Результат:
Разъяснение:
Обратите внимание, в условиях мы сравнили переменную $name со значением "сайт ". То есть, в условии написали, что если переменная $name равна "сайт ", кстати, знак равенства обозначается двойным знаком равенства (== ), тогда это условие является истиной, а если условие истина, тогда выводится действие. Я в действиях написал вот этот код:
echo "
";
Я думаю, здесь разобрались.
На заметку :
== – равенство. Пример: if ($a == $b) .
!= – не равенство. Пример: if ($a != $b) .
= – присвоить. Пример: $a = 1 .
Оператор условия if-else
С простым условием мы разобрались, это было не сложно, но теперь усложним немного задачу. Вернемся к нашему примеру:
С понедельника по пятницу в 6:30 вы как обычно по будильнику встаете и идете на работу, но, если сегодня суббота или воскресенье, значит, будильник звонить не будет и вы будете выполнять другие действия.
Вернемся теперь к примерам PHP и попробуем по этой схеме написать код:
"; } echo "С уважением, автор блога Костаневич С.В."; ?>
Сохраните как «if-else.php » в папку «test-1 » локального сервера (см. урок 1).
Введите в браузере адрес:
https://localhost/test-1/ if-else.php
Результат:
Как видите, переменная $name и $n равны. Значит, условие является истиной.
$name
= "сайт
";
$n
= "сайт
";
if ($name
== $n
)
Давайте поменяем значение и сделаем условие ложным, для этого поменяйте в переменной значение, например, так:
$name
= "сайт";
$n
= "blog";
if ($name
== $n
)
можно и вот так:
$name
= "сайт";
$n
= "сайт";
if ($name
!= $n
)
Теперь напишем PHP-код:
"; } echo "С уважением, автор блога Костаневич С.В."; ?>
Результат:
Разъяснение:
В условиях мы сравнили переменную $name с переменной $n . Когда в переменных было одинаковое значение, а в условиях стоял знак равенства (== ), условие было истинным, работала эта часть кода:
{
echo "
Рад видеть вас на моем блоге $name!
";
}
Как только мы поменяли значение в переменных, условие стало ложным, и в работу запустилась другая часть кода:
else
{
echo "
действие ложное
";
}
Последнее обновление: 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<0) { echo $a * $b; } elseif($a==0) { echo $a + $b; } elseif($a==5) { echo $a - $b; } else { echo $a / $b; }
Можно добавить множество блоков 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 < $b ? $a + $b: $a - $b; echo $z;
Если значение переменной $a меньше $b и условие истинно, то переменная $z будет равняться $a + $b . Иначе значение $z будет равняться $a - $b
Итак, как создавать и выводить переменные мы уже знаем. Также уже имеем четкое представление как в PHP переменные между собой взаимодействуют. Теперь настало время перейти к очень важной в PHP конструкции IF-ELSE (если — иначе).
Привожу рабочий синтаксис данной конструкции:
IF (условие) — если условие истина, то выполняются
{
действия
}
else — если условие ложь, то выполняются
{
действия
}
?>
Работу конструкции рассмотрим на конкретном примере:
$c = 3;
$d = 5;
if ($c ==$d)
{
echo «Переменные равны»;
}
else
{
echo «Переменные не равны»;
}
?>
Видно, что в начале мы присвоили переменным $c и $d разные значения. Затем задаем условие и проверяем — равны ли данные переменные между собой. И так как они не равны, срабатывает часть else и оператор вывода echo. То есть результатом выполнения данного кода будет надпись на экране — Переменные не равны. Если есть вопросы задавайте! С радостью отвечу на них.
Двойные условия IF-ELSE
Представленный выше синтаксис также может называться конструкцией IF-ELSE с одним условием. А теперь усложним пример, который я представлял выше, и добавим еще 1 условие. Для этого создадим еще 1 пример, но уже применим двойные условия IF-ELSE.
$c = 3;
$d = 5;
$e = 8;
$k = 10;
if ($c !=$d and $e !=$k)
{
echo «Переменные не равны»;
}
else
{
echo «Переменные равны»;
}
?>
Хочу заметить, что!= — в php означает — «не равно».
Двойные условия в php создаются с помощью логических функций:
- and (логическое и, также php позволяет написать вместо and — &&);
- or (логическое или, также php позволяет написать вместо or — ||).
Результат выполнения нашей программы — вывод на экран сообщения — Переменные не равны.
Всем привет! Вот и очередной урок по PHP подоспел. Сегодняшняя тема – одна из самых любимых у тех, кто начинает программировать. Ещё бы, ведь условия в PHP – это то, что позволяет нам составлять различные алгоритмы. Именно в зависимости от условий программа будет вести себя так или иначе. И именно благодаря им мы можем получать разный результат при разных входных данных. В PHP имеются несколько конструкций, с помощью которых можно реализовать условия. Все они используются, и имеют свои преимущества в разных ситуациях, или, если хотите – условиях. Кругом одни условия, не так ли? Так. Никто ведь не будет спорить, что в реальной жизни в зависимости от обстоятельств мы поступаем по-разному. В программировании это не менее важно и сейчас мы этому научимся.
Как вы должны помнить из прошлого урока, в PHP, в зависимости от оператора, операнды приводятся к определённому типу. Для операторов условий в PHP действуют те же правила, и здесь операнд всегда приводится к булевому значению. В случае, если это значение true , то считаем, что условие выполнено, а в случае, если false – то условие не выполнено. В зависимости от того, выполнено ли условие, мы можем делать или не делать какие-либо действия. И тут я предлагаю рассмотреть первый условный оператор – if .
Условный оператор if
Это самый простой, и самый часто используемый оператор. В общем случае конструкция выглядит следующим образом:
А в реальной жизни использование оператора if выглядит следующим образом:
Здесь мы явно передали оператору значение true . Разумеется, это абсолютно бессмысленно. Давайте с помощью условия будем определять числа больше 10. Это довольно просто:
10) { echo "Число больше 10"; }
И после запуска мы увидим результат:
Число больше 10
Конструкция if-else
А можно ли сделать так, чтобы, когда условие не выполнилось, выполнился другой код? Конечно можно! Для этого вместе с оператором if используют оператор else (по-русски - иначе). Он пишется после фигурных скобок, в которые заключается код, выполняющийся при выполненном условии. И выглядит конструкция следующим образом:
10) { echo "Число больше 10"; } else { echo "Число меньше либо равно 10"; }
Здесь опять же на экран будет выведено сообщение:
Число больше 10
Однако если мы изменим входные данные, и переменной $x в самом начале присвоим значение 8 , то выведется сообщение:
Число меньше либо равно 10
Попробуйте сделать это прямо сейчас.
Конструкция if-elseif-else: несколько условий
В случае, если вам нужно проверить несколько условий, после оператора if добавляется ещё и оператор elseif . Он проверит условие, только если не выполнится первое условие. Например:
10) { echo "Число больше 10"; } elseif ($x == 10) { echo "Число равно 10"; }
В данном случае, на экран будет выведено:
Число равно 10
И да, после этого оператора можно добавить else . Код внутри него будет выполнен, если не выполнилось ни одно из условий:
10) { echo "Число больше 10"; } elseif ($x == 10) { echo "Число равно 10"; } else { echo "Число меньше 10"; }
Результат этого кода, я полагаю, объяснять не нужно. Да, кстати, возможен целый список из elseif -ов. Например, такой:
Приведение к boolean
Помните, в уроке про мы с вами научились явно приводить значения к какому-либо типу. Например:
Результатом будет true
.
Работающее так же, только неявное преобразование, всегда происходит в условии. Например, следующее условие:
Выполнится успешно, так как число 3 будет преобразовано к true . К false будут приводиться следующие значения:
- "" (пустая строка)
- 0 (число 0)
Таким образом, любое ненулевое число и ненулевая строка будут преобразованы в true и условие выполнится. Исключение – строка, состоящая из одного нуля:
Она также будет преобразована к false .
Я затронул эту тему с приведением к boolean в домашнем задании к этому уроку. Обязательно его выполните. А сейчас давайте перейдём к следующему условному оператору.
Оператор switch
Помимо конструкции if-else есть ещё один оператор условия. Это – switch . Это очень интересный оператор, требующий запоминания нескольких правил. Давайте для начала посмотрим, как он выглядит на следующем примере:
Сначала может показаться, что этот оператор довольно сложный. Однако, если разобраться, то всё становится понятно. В операнде switch указывается некоторое выражение. В нашем случае, это переменная $x , а точнее её значение - 1 .
В фигурных скобках мы перечисляем операторы case , после которых указываем значение, с которым сравнивается значение операнда switch . Сравнение происходит нестрогое, то есть как будто используем оператор ==. И если условие выполнилось, то выполняется код, указанный после двоеточия. Если же ни одно из условий не выполнилось, то выполняется код из секции default , которой в общем-то может и не быть, и тогда ничего выполняться не будет. Обратите внимание, внутри каждой секции case , в конце мы прописали оператор break . Это делается для того, чтобы после выполнения кода в случае выполнения условия не продолжилась проверка условий. То есть, если бы не было break в конце секции case 1 , то после того, как вывелся бы текст
Число равно 1
продолжило бы выполняться условие сравнения с 2 , а затем бы выполнился и код в секции default . Не забывайте писать break !
Сравнение switch с if
Вообще, этот код можно было бы записать и с помощью конструкции if-elseif-else :
Но в виде конструкции switch-case код в конкретно этом случае выглядит проще. И вот почему:
- мы сразу видим, что конкретно мы сравниваем (переменную $x ) и понимаем, что сравниваем в каждом условии именно это значение, а не какое-либо ещё;
- глазу удобнее воспринимать то, с чем сравниваем – секции case 1 , case 2 визуально воспринимаются легче, сравниваемое значение заметнее.
И снова про switch
И я ещё не всё сказал про switch - можно писать несколько case -ов подряд, тогда код выполнится при условии, что выполнен хотя бы один из них. Например:
Согласитесь, это может быть удобно.
Хорошо, давайте пройдёмся по особенностям оператора switch , о которых нужно помнить всегда.
- break прерывает набор условий, не забывайте указывать его;
- секция default будет выполнена, если не выполнилось ни одно из условий. Она может и вовсе отсутствовать;
- несколько case -ов могуть быть записаны подряд, тогда код в секции выполнится при выполнении хотя бы одного из условий.
Немного практики
Ну что, запомнили операторы условий? Давайте закрепим на практике более реальными примерами.
Чётное или нечётное
Вот один из примеров – нужно определить, чётное ли число или нет. Для этого нам нужно проверить, что остаток от деления на 2 будет равен 0 . Подробнее об операторах читайте . Давайте сделаем это:
Попробуйте самостоятельно изменить значение переменной $x . Круто, да? Оно работает!
Модуль
Давайте теперь научимся вычислять модуль числа. Если число больше или равно нулю, то нужно вывести само это число, если меньше – заменить знак с минуса на плюс.
= 0) { echo "Модуль числа: " . $x; } else { echo "Модуль числа: " . -$x; }
Результат:
Модуль числа: 2
Как мы видим, всё успешно отработало.
Тернарный оператор
Помимо этого, в PHP есть ещё один оператор, который представляет собой сокращённую форму конструкции if-else . Это тернарный оператор. При этом он возвращает разные результаты, в зависимости от того, выполнено ли условие или нет. В общем виде его использование выглядит следующим образом:
Условие? результат_если_true: результат_если_false
Или на примере того же нахождения модуля:
= 0 ? $x: -$x; echo "Модуль: " . $mod;
Результат:
Модуль: 2
Круто, да? Тернарный оператор – очень элегантно вписывается при решении таких вот простеньких задачек.
И ещё немного практики
Условия можно помещать внутрь друг друга и вообще, чего с ними только можно не делать. Например:
0) { if ($x >= 100) { echo "Число больше либо равно 100"; } else { echo "Число больше 0 но меньше 100"; } } else { echo "Число меньше либо равно 0"; }
Итог
Друзья, надеюсь вам понравился урок. Если это так – буду рад, если вы поделитесь им в социальных сетях или расскажете друзьям. Это лучшая поддержка проекта. Спасибо тем, кто это делает. Если у вас возникли какие-то вопросы или замечания – напишите об этом в комментариях. А сейчас – все быстренько делаем домашнее задание, там ещё больше интересных примеров с условиями. Всем пока!
3.6K
В этой статье мы расскажем, как использовать операторы if … else … и elseif PHP .
Условные операторы PHP
В PHP есть несколько операторов, которые можно использовать для принятия решений:
- Оператор if ;
- Оператор if … else ;
- Оператор if … elseif …. else ;
- Оператор switch … case .
Ниже мы рассмотрим каждый из этих операторов.
Оператор if
Оператор if (как и PHP elseif ) используется для выполнения блока кода только в том случае, если указанное условие имеет значение true . Это простейший условный оператор PHP , его можно записать следующим образом:
if(условие){ // Исполняемый код }
Хорошего уик-энда! », если сегодня пятница:
Пример :
Оператор if … else
Можно усложнить процесс принятия решений, предоставив альтернативный вариант. Для этого к if нужно добавить оператор else . Оператор if … else позволяет выполнить один блок кода, если указанное условие оценивается как true , а другой блок кода, если false .
Его можно записать следующим образом:
if(условие){ // Код, который будет выполнен, если условие истинно } else{ // Код, который будет выполнен, если условие ложно }
Приведенный ниже код выводит «Хорошего уик-энда! », если сегодня пятница. Иначе выводиться «Хорошего дня! ».
Пример :
Оператор if … elseif … else
if…elseif…else оператор (не путать с PHP elseif else ) используется для объединения нескольких операторов if … else .
if(условие){ // Код, который будет выполнен, если условие истинно } elseif(условие){ // Код, который будет выполнен, если условие истинно } else{ // Код, который будет выполнен, если условие ложно }
Приведенный ниже код выводит «Хорошего уик-энда! », если сегодня пятница или «Хорошего воскресенья!» если сегодня воскресенье. В противном случае будет выводиться «Хорошего дня! ».
Пример :
Тернарный оператор
Тернарный оператор предоставляет сокращенный способ написания операторов if … else и elseif PHP . Тернарный оператор обозначается символом вопросительного знака (? ). Он принимает три операнда: условие для проверки, результат для true и результат для false .
Чтобы понять, как работает этот оператор, рассмотрим следующие примеры:
Пример :
Используя тернарный оператор, тот же код можно записать более компактно:
Пример :
Тернарный оператор в приведенном выше примере выбирает значение слева от двоеточия (т. е. «Ребенок» ), если условие оценивается как true (т. е. если $age меньше 18 ) и значение справа от двоеточия (т.е. «Взрослый» ), если условие оценивается как false .
Примечание . Код, написанный с использованием тернарного оператора, может быть трудно читаемым. Тем не менее, он предоставляет способ компактной записи операторов if-else и PHP elseif .
Оператор нулевого коалесцирования в PHP7
В PHP 7 был введен новый оператор нулевого коалесцирования (?? ), который можно использовать в качестве сокращенного обозначения тройного оператора в сочетании с функцией isset() .