- Урок 5. Условный оператор if, логические операции и сравнение в PHP
- Операторы сравнения в PHP
- Логические операторы PHP
- Тернарный оператор
- Двойное условие и вложенные конструкции if-else на PHP. Урок 7
- Двойное условие if-else
- Вложенные конструкции if-else .
- Логические операторы в PHP
- Все логические операторы в PHP
- Задача
- PHP If Statement with OR Operator
- PHP If OR
- If statement with OR operator in the condition
- Examples
- 1. Check if a is 2 or b is 5.
- 2. Check if given string starts with “a” or “b”.
- Conclusion
Урок 5. Условный оператор if, логические операции и сравнение в PHP
Главное в действие данное оператора — это условие. if в переводе с английского значит если. Условие принимается в качестве аргумента (то что в скобках). В качестве условия может выступать логическое выражение или логическая переменная. Если проще, то смысл выражения будет такой:
if (условие) условие выполнено, делаем так
>
else
условие не выполнено, делаем иначе
>
Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.
$a = 5;
$b = 25;
// Теперь внимание! Условие: Если $b больше $a
// Знаки > и < , как и в математике, обозначают больше и меньше
if($b > $a)
// если условие выполнено, то выполняем это действие
echo "$b больше $a";
>
else
// если не выполнено, то это
echo "$a больше или равно $b";
>
?>
Демонстрация Скачать исходники
В итоге скрипт выведет 25 больше 5. Пример довольно прост. Надеюсь всё понятно. Теперь предлагаю рассмотреть ситуацию сложнее, где нужно соблюсти несколько условий. Каждое новое условие будет содержать после основного условия if() — вспомогательное, которое записывается как else if(). В конце как обычно будет else.
Задача: В школе проводят тестирование. Скрипту нужно высчитать балл, зная условия получения каждой оценки и сам балл школьника. Давайте посмотрим как это записать, и не забудьте прочитать комментарий.
$test = 82; // допустим школьник написал тест на 82 балла
// первое условие напишем для пятёрки
if($test > 90)
// если условие соблюдено, то выполняем это действие.
echo "Оценка 5";
>
// Знак && обозначает "и, объединение", что условие соблюдено если и то, и то верно
// то есть балл меньше 91 и больше 80, тогда 4. Иначе условия считываются дальше
else if ($test < 91 && $test >80)
echo "Оценка 4";
>
else if ($test < 81 && $test >70)
echo "Оценка 3";
>
else
echo "Надо бы ещё раз написать тест. ";
>
?>
Демонстрация Скачать исходники
Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.
Возможна и короткая запись работы условной операции, когда Вам нужно действие только в случае соблюдения условия.
$age = 19; // переменная с возрастом
if ($age > 17) echo "Всё! Мне можно делать всё что угодно! Мне уже $age!";
>
Вполне себе милый пример короткой записи условной операции. else писать не обязательно.
Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?
Операторы сравнения в PHP
Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.
Пример Название Результат
$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Теперь рассмотрим операторы на примерах:
$a = 5;
// вопреки привычке = значит присваивание значение переменной, а == как равно
if ($a == 5) echo "$a равно 5"; // выведет "5 равно 5"
> else echo "$a не равно 5";
>
if ($a != 6) echo "$a не равно 6"; // выведет "5 не равно 6". Нужно в случае отрицания
> else echo "$a каким-то образом равно 6";
>
// с больше и меньше думаю всё понятно. Поэтому пример сложнее
if ($a <= 6)echo "$a меньше или равно 6"; // выведет "5 меньше или равно 6"
> else echo "$a больше 6";
>Логические операторы PHP
Бывают случаи, когда нужно сравнить не одну переменную, а сразу две и более в одном условии. Для этого существуют логические операторы.
Пример Название Результат
$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.Уже обратили внимание, что для операций и и или есть дополнительные операторы? Так сделано для того, чтобы расставить приоритеты в сложных операциях сравнения. В таблице логические операторы приведены в порядке приоритета: от меньшего к большему, то есть, например, || имеет больший приоритет, чем or.
Переходим к примерам
$a = 5;
$b = 6;
$c = 7;
// условие: Если 5 не равно 6 (ВЕРНО) И 6 не равно 7 (ВЕРНО)
if ($a < 6 && $b != $c)echo "Действительно так!"; // выведет "Действительно так!" т.к. ОБА условия ВЕРНЫ
> else echo "Одно из условий не верно";
>
// условие: Если 6 не равно 6 (НЕВЕРНО) ИЛИ 6 не равно 7 (ВЕРНО)
if ($b != 6 || $b != $c) echo "Всё так!"; // выведет "Всё так!", т.к. хотя бы ОДНО из условий ВЕРНО
> else echo "Оба условия не верны";
>Тернарный оператор
К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.
Суть кода: (условие) ? значение a если true : значение a если false
Таким образом, мы сокращаем запись оператора if. Однако, данная операция действительна только с присваиванием значений переменной. Теперь давайте рассмотрим готовый пример.
// Пример использования тернарного оператора
$settings = (empty($_POST['settings'])) ? 'По умолчанию' : $_POST['settings'];
// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['settings'])) $settings = 'По умолчанию'; // Если ничего не передано, то оставляем "По умолчанию"
> else $settings = $_POST['settings']; // Если передано, то $settings присваивается переданное значение.
>
?>Прочитайте комментарии к коду и всё должно быть понятно.
Двойное условие и вложенные конструкции if-else на PHP. Урок 7
Этот урок немножко посложней, чем предыдущий, но не стоит бояться, вы должны перейти на уровень выше в познании PHP. В этой статье речь пойдет о конструкции, которая состоит из нескольких условий. Продолжаем изучать оператора условий if-else для PHP.
Прежде чем мы приступим к продолжению изучения оператора if-else , убедительно рекомендую посмотреть знаки, которые используются в условиях if . Запомните их или запишите:
Равенство: ==
Пример: if ($a == $b)Не равенство: !=
Пример: if ($a != $b)Больше или равно: >=
Пример: if ($a >= $b)Меньше или равно: Пример: if ($a
Логическое «и»: and
Пример: if ($a ==$b and $c !=$d)Логическое «или»: or , ||
Пример: if ($a ==$b || $c !=$d)Двойное условие if-else
Где можно его применить? Когда я создавал для одного сайта админ-панель, то использовал двойное условие для проверки логина и пароля.
Чтобы создать двойное условие, нужно добавить еще две переменные, например: $k = 55; $n = 88.
Это будет выглядеть вот так:and – вы уже знаете, что это означает логическое « и ».
Как это будет выглядеть в PHP-коде:
else < echo "Не все ОК :("; >?>Разъяснение:
Смотрите, в условии мы указали, что если переменные $a с $b равны ($a == $b) и переменные $k с $n не равны ($k != $n) , условие будет считаться правильным. А если условие правильное, значит, будет работать эта часть кода:Сохраните код PHP как « if-else.php » в папку « test-1 » локального сервера (см. урок 1).
Если значение переменой $a поменять на противоположное значение переменной $b , то условие будет невыполнимо! Почему? Да потому, что переменные ($a == $b) не равны между собой. Если условие не выполнено, будет работать другая часть кода:
Как это выглядит в PHP-коде:
else < echo "Не все ОК :("; >?>Сохраните код PHP как « if-else.php » в папку « test-1 » локального сервера (см. урок 1).
Вложенные конструкции if-else .
Что называют вложенными конструкциями if-else ? Это такие конструкции, которые состоят из нескольких условий.
Теперь рассмотрим вложенные конструкции if-else . Такие конструкции могут состоять из нескольких условий в выполняемых правилах. Для примера добавим еще две переменные $familiya 1 и $familiya 2 :
$familiya 1 color: #008000;">ivanov ";
$familiya 2 color: #008000;">sidarov ";Как это выглядит в PHP-коде:
В переменных familiya1 и familiya2 содержатся разные фамилии."; > else < echo "Не так все плохо, как вам кажется :(
В переменных familiya1 и familiya2 содержатся одинаковые фамилии."; > > else < echo "Не все ОК :("; >?>Разъяснение:
Смотрите, здесь были выполнены все условияПеременная $a равная с переменной $b и переменная $k не равная с $n . Здесь условия были выполнены, а это значит, что будет работать эта часть кода:
if ($familiya1 != $familiya2)
<
echo " Все ОK : )В переменных familiya1 и familiya2 содержатся разные фамилии. ";
>Так как переменные $familiya 1 и $familiya 2 между собой не равны и это правда,
$familiya1 color: #0000ff;">ivanov ";
$familiya2 color: #0000ff;">sidarov ";то будет работать вот эта часть кода:
<
echo " Все ОK : )В переменных familiya1 и familiya2 содержатся разные фамилии. ";
>Смотрим результат! Сохраните код PHP как « if-else.php » в папку « test-1 » локального сервера (см. урок 1).
Если в переменных $familiya1 и $familiya2 сделать значение одинаковыми:
$familiya1 color: #0000ff;">sidarov ";
$familiya2 color: #0000ff;">sidarov ";тогда, увы, здесь условия выполненными не будут, так как в условии стоит, что переменные должны быть не равными:
Вот по этой причине будет работать вот эта часть кода:
else
<
echo " Не так все плохо, как вам кажется : (В переменных familiya1 и familiya2 содержатся одинаковые фамилии. ";
>В результате на мониторе вы увидите картинку:
Вот мы и закончили полностью тему «Оператор условия if-else для PHP». Чтобы закрепить «Урок 5» и «Урок 6», рекомендую самостоятельно поработать над созданием собственных условий.
А я пойду готовить для вас новые уроки по основам PHP. Подписывайтесь на обновления блога, если не хотите пропустить уроки по PHP.
Всего хорошего!Логические операторы в PHP
Логические операторы позволяют указывать сразу несколько условий для одного блока IF:
Оператор && , который ещё называется логическое И, приводит значения слева и справа к булеву типу, а затем и сам возвращает булево значение: true если слева и справа true , либо false если одно из условий false .
Другими словами, если и одно, и другое условие истинно, то и оператор && возвращает истину. Что и отражает название оператора.
Оператор || или логическое ИЛИ возвращает истину когда истинно хотя бы одно из двух условий:
5 || 1 > 2) echo 'Условие выполнено.'; ?>
В коде выше команда echo будет выполнена, поскольку одно из условий истинно.
Все логические операторы в PHP
$a && $b | Истина, если $a и $b равны true. |
$a || $b | Истина, если хотя бы одна из $a и $b равна true. |
$a xor $b | Истина, если одна из $a и $b равна true, но не обе. |
!$a | Истина, если $a не равна true. |
$a and $b | Аналогично && |
$a or $b | Аналогично || |
Между операторами && и and , а также между || и or есть небольшое различие - порядок выполнения.
Как вы знаете, умножение имеет больший приоритет, чем сложение. Так вот, операторы and и or имеют приоритет ниже, чем оператор присваивания = . Результат можно увидеть в следующем примере:
Поскольку у = приоритет выше, PHP воспримет код так:
Т.е. сначала он присваивает переменной $var значение true , а затем происходит операция true and false , которая не имеет смысла, поскольку не влияет на значение переменной.
Ниже расположена таблица с приоритетами операторов. С некоторыми из них вы уже встречались. Чем выше оператор в таблице - тем выше его приоритет.
- ++ -- ~ (int) (float) (string) (array) (object) (bool) @
- * / %
- + - .
- < >=
- == != === !== <>
- &&
- ||
- ? : (тернарный оператор)
- = += -= *= **= /= .= %= &= |= ^= <>=
- and
- xor
- or
Теперь мы можем определить, что приоритет операторов сравнения (==, != и т.д.) выше, чем у логических операторов. Эта информация пригодится нам для выполнения задачи.
Задача
Каким будет результат выполнения следующего выражения?
PHP If Statement with OR Operator
In this PHP tutorial, you will learn how to use OR operator in If-statement condition, and some example scenarios.
PHP If OR
PHP If condition can be compound condition. So, we can join multiple simple conditions with logical OR operator and use it as condition for PHP If statement.
If statement with OR operator in the condition
The typical usage of an If-statement with OR logical operator is
if ( condition_1 || condition_2 ) < //if-block statement(s) >
- condition_1 and condition_2 can be simple conditional expressions or compound conditional expressions.
- || is the logical OR operator in PHP. It takes two operands: condition_1 and condition_2 .
Since we are using OR operator to combine the condition, PHP executes if-block if at least one of the condition_1 or condition_2 is true. If both the conditions are false, then PHP does not execute if-block statement(s).
Examples
1. Check if a is 2 or b is 5.
In this example, we will write an if statement with compound condition. The compound condition contains two simple conditions and these are joined by OR logical operator.
PHP Program
2. Check if given string starts with “a” or “b”.
In this example we use OR operator to join two conditions. The first condition is that the string should start with "a" and the second condition is that the string should start with "b" .
PHP Program
Conclusion
In this PHP Tutorial, we learned how to write PHP If statement with AND logical operator.