Описание логических выражений и условных операторов (if-else, ?:, switch) языка PHP
Логическое ИЛИ (OR и ||)
Оператор логическое ИЛИ обозначается как OR или ||. Он выполняет операцию «логическое ИЛИ» над двумя операндами. Если один или оба операнда имеют истинное значение, он возвращает true. Если оба операнда имеют ложные значения, он возвращает false. У вас вероятно возник вопрос, зачем же сделали два варианта одного оператора? Смысл двух разных вариантов оператора «логическое ИЛИ» в том, что они работают с различными приоритетами.
Сначала разберем как работает оператор ||. И так, если один или оба его операнда имеют истинное значение, он возвращает true. Если оба операнда возвращают ложные значения, он вернет false.
Оператор OR работает также как и оператор || за одним исключением, если оператор OR используется с присваиванием, то сначала он вычислит и вернет значение левого операнда, в остальном он работает точно также как и оператор ||, т.е. если один или оба его операнда имеют истинное значение, он возвращает true. Если оба операнда возвращают ложные значения, он вернёт false.
Чтобы стало понятнее, как они работают, приведем следующий пример:
<?php // Оператор «||» имеет больший приоритет, чем «or» // Результат выражения (false || true) будет присвоен переменной $var1 // Действие приоритета: $var1 = (false || true) $var1 = false || true; echo $var1; // => 1 // Сначала переменной присваивается значение false, а затем вычисляется второй операнд // Действие приоритета: ($var2 = false) or true $var2 = false or true; echo $var2; // false не выводится // ($var3 = 0) or 3 $var3 = 0 or 3; echo «<br>$var3»; // => 0?>
Любые операторы сравнения и логические можно комбинировать в более сложные конструкции:
<?php $a = (6 == 6) || (4 <= 9); // или так echo (‘c’ != ‘d’) or (‘A’ === ‘A’);?>
Стоит упомянуть еще об одном важном моменте, касательно обоих операторов OR и ||. Оператор «логическое ИЛИ» начинает свои вычисления со своего левого операнда, если он возвращает true, то правый операнд вычисляться не будет. Это позволяет экономить время исполнения, но нужно внимательно следить за тем, чтобы код, от которого может зависеть корректная работа программы, не был помещен в правый операнд.
Источник: http://puzzleweb.ru/php/15_logic.php
И &&
A | B | A && B |
---|---|---|
TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE |
FALSE | TRUE | FALSE |
FALSE | FALSE | FALSE |
Источник: http://ru.code-basics.com/languages/php/lessons/logical-operators
Приоритет операторов
Начнём с того, что операторы имеют разный приоритет. Как, например, в математике: оператор умножения будет более приоритетным по сравнению с оператором сложения:
<?php$result = 2 + 2 * 2;var_dump($result);
Результат:
int 6
Приоритетом можно управлять с помощью круглых скобок, например:
<?php$result = (2 + 2) * 2;var_dump($result);
Ну и тут думаю всё понятно:
int 8
В целом приоритеты операторов довольно предсказуемы.
Приоритет всех операторов в PHP можно посмотреть в официальной документации.
Источник: http://webshake.ru/kurs-php-dlya-nachinayushih/izuchaem-operatory-v-php
Все операторы php
- Арифметические операторы в PHP.
- Операторы сравнения в PHP.
- Логические операторы в PHP.
- Новые операторы
- Какого оператора в php не существует?
Условные операторы
на отдельной странице
-
Источник: http://dwweb.ru/page/php/012_operatoryi_php.html
Использование or для условного выполнения.
Часто в коде можно встретить примеры использования or без всяких if.
mysql_connect(…) or die(‘DB error’);
Такая конструкция также основана на приоритете вычислений — в случае, если первый аргумент (до конструкции `or`) имеет истинное значение, второй не вычисляется.
Метки: php
Опубликовано Четверг, Апрель 18, 2013 в 08:08 в следующих категориях: Без рубрики. Вы можете подписаться на комментарии к этому сообщению через RSS 2.0. Вы можете оставить комментарий. Пинг отключен.
Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)
ссылка (для отправки по почте)
Источник: http://levik.info/php-if-and-or-ili-i-ili-v-usloviyax.htm
Принцип выполнения арифметический операторов
Арифметические операторы подчиняются математическим законам!
Если написано, что d = a + b * c, то вначале произойдёт умножение, а потом уже сложение.
Если сталкиваются несколько выражений с плюсом и минусом, то ставятся простые скобки ().
О знаке «равно»
Внимательный читатель должен был увидеть, что нет знака равно «=».
Но тем, кто и не вглядывался — сообщаю!
— Действительно знака равно «=» нет.
Почему? Потому, что данный знак не является арифметическим оператором — это один из операторов присваивания
-
Источник: http://dwweb.ru/page/php/012_operatoryi_php.html
Примеры использования
Условия с логическими операторами
Здесь сравниваются сразу две переменных. В результате, верным окажется условие №2.
<?
$abc = 5+11;
$xyz = 21;
if($abc == 16 and $xyz == 10) {
echo»Верно условие №1″;
} elseif($abc == 16 and $xyz == 21) {
echo»Верно условие №2″;
} else {
echo»Все условия являются ложными!»;
}
?>Условия с разными операторами сравнения
<?
$abc = 1000;
$xyz = 10000;if($xyz < 123) {
echo»Значение переменной <b>xyz</b> меньше, чем <b>123</b>.»;
} elseif($xyz <= 1000 and $abc == 999) {
echo»Значение переменной <b>xyz</b> меньше или равно <b>1000</b>, а значение переменной <b>abc</b> равно <b>999</b>.»;
} elseif($xyz == 10000 and $abc == 1000) {
echo»Значение переменной <b>xyz</b> равно <b>10000</b>, а значение переменной <b>abc</b> равно <b>1000</b>.»;
}
?>Итог: выполнение третьего условия.
Тернарный оператор
Условие без тернарного оператора выглядит следующим образом:
<?
if ($abc < $xyz) {
$www = $abc;
} else {
$www = $xyz;
}
?>Его можно сократить до:
<?$www = ($abc < $xyz) ? $abc : $xyz;?>
Источник: http://welcome4u.ru/languages/php/logicheskie-operatory
Задание
Джон поручил Сэму реализовать автоматическое распознавание солдат Ланнистеров на видео. Идея автоматизировать дозор крепости казалась ему привлекательной. В процессе работы Сэму понадобилось написать функцию, которая определяет, Ланнистер ли перед ним или нет. Немного подумав, Сэм выделил следующие правила определения Ланнистера:
Если у солдата доспехи красного цвета И нет щита
ИЛИ
если у солдата есть щит с изображением льва
то это Ланнистер.
Напишите функцию isLannisterSoldier(), которая принимает на вход два аргумента:
- Цвет доспехов (строка). Если доспехи красные, то строка red.
- null, если щита нет. Строка lion, если щит есть, и на нём изображен лев.
Функция возвращает true, если распознан Ланнистер, и false, если не распознан.
Примеры вызова:
<?phpisLannisterSoldier(‘red’, ‘man’); // falseisLannisterSoldier(‘blue’, ‘lion’); // true
Источник: http://ru.code-basics.com/languages/php/lessons/logical-operators
Что вам делать дальше:
Приступайте к решению задач по следующей ссылке: задачи к уроку.
Когда все решите — переходите к изучению новой темы.
Источник: http://old.code.mu/books/php/base/priemy-raboty-s-logicheskimi-znacheniyami-na-php.html
Операторы сравнения в PHP.
Операторы сравнения относятся к логическим операторам, и применяются для сравнения переменных. Массивы и объекты с их помощью сравнивать нельзя.
-
Источник: http://dwweb.ru/page/php/012_operatoryi_php.html
Советы
-
Булева алгебра
-
Конъюнкция
-
Дизъюнкция
Источник: http://ru.code-basics.com/languages/php/lessons/logical-operators
Логическое НЕ (!)
Оператор логическое НЕ, его также называют отрицание обозначается знаком !. Он является унарным оператором, помещаемым перед одиночным операндом. Оператор «логическое НЕ» используется для инверсии логического значения своего операнда и всегда возвращает true или false.
Если потребуется инвертировать значение выражения, например a && b, необходимо будет использовать круглые скобки: !(a && b). Также с помощью оператора ! можно преобразовать любое значение x в его логический эквивалент, дважды применив оператор: !!x.
<?php $a1 = 10; var_dump((11 == 11)); // true // оператора ! инвертирует значение var_dump(!(11 == 11)); // false // преобразует в логическое значение var_dump(!!$a1); // true?>
Источник: http://puzzleweb.ru/php/15_logic.php
Определения
-
Логические операторы — операторы «И» (&&), ИЛИ (||), позволяющие создавать составные логические условия.
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
https://github.com/hexlet-basics
Источник: http://ru.code-basics.com/languages/php/lessons/logical-operators
-