Логические операторы в PHP. Как построить сложное утверждение?

логические операторы в php. как построить сложное утверждение?

Осмысление логических операторов

Чтобы лучше понять смысл работы логических операторов в PHP, мы приведем немного абстрактный пример. Допустим, у нас есть результат отдельного выражения с использованием операторов сравнения. Он принадлежит логическому типу, так как результатом сравнения всегда является true или false. Мы можем назвать его высказыванием. Это верно ведь операцию «10 > 5» можно заменить высказыванием, - «Я утверждаю, что число десять больше пяти». Соответственно и ответ будет «правда», или выражаясь программным языком true.

Что если нам нужно построить более сложное высказывание? Например, - «Я утверждаю, что число десять больше пяти, а также число семь меньше трех». Сложность такого высказывания в том, что в нем содержится два утверждения, а результат должен быть одним: true или false. Мы все знаем, что общим результатом данного высказывания будет false так как семь больше трех, что делает всё выражение не правдой. Как построить такое выражение с помощью PHP? Именно для этого и нужны логические операторы.

Ниже мы приводим таблицу с описанием всех логических операторов существующих в PHP. Сразу за таблицей идет подробный разбор принципов их работы и ряд примеров, демонстрирующих использование.

Пример Название Результат
(возвращает «true»)
$var1 and $var2 Логическое и Если $var1 и $var2 равны true
$var1 or $var2 Логическое или Если $var1 или $var2 равны true
$var1 xor $var2 Исключающее логическое или Если $var1 или $var2 равны true, но не оба сразу
!$var Логическое отрицание Если $var1 не равен true
$var1 && $var2 Логическое и Тоже что при and
$var1 || $var2 Логическое или Тоже что при or

Таким образом, высказывание, - «Я утверждаю, что число десять, деленное на пять равно двум, а также, что два массива, содержащие строку “пример“ равны между собой», можно записать в виде примера представленного ниже.

//Помещаем в первую переменную результат утверждения
//связанный с математическими вычислениями
$firstAsset = (10/5) === 2;

//Помещаем во вторую переменную результат утверждения
//связанный с сравнением двух массивов
$secondAsset = ['пример'] === ['пример'];

//Используем логический оператор "логическое и"
var_dump($firstAsset && $secondAsset); //Результат: bool(true)

Логические операторы функционируют по уже известному нам принципу:

  1. Оператор берет значение, стоящее справа от него. Если оно не является логическим, то преобразовывает его в логический тип данных.
  2. Затем берет значение, стоящее слева и осуществляет с ним те же самые операции.
  3. Над обработанными значениями осуществляется логика, соответствующая оператору (приведенная в таблице).
  4. Оператор заменяет выражение результатом логического типа.

Логический оператор «отрицание», применяется к одному значению стоящему справа от него. Принцип его работы тот же самый, только без третьего пункта.

//Определяем переменные для примеров
$firstCompare = ('тест' === 'тест'); //true
$secondCompare = (25 < 3); //false

//Используем оператор "отрицание"
var_dump(!$firstCompare); //Результат: bool(false)

//Используем оператор "логическое или"
var_dump($firstCompare || $secondCompare); //Результат: bool(true)

//Использование оператора "логическое и"
var_dump($firstCompare && $secondCompare); //Результат: bool(false)

//Использование оператора "логическое исключающее или"
var_dump($firstCompare xor (3 === 3)); //Результат: bool(false)

Нужно отметить, что в PHP присутствуют несколько логических операторов осуществляющих одно и тоже действие: and и &&, or и ||. Разница между ними только в том, что операторы && и || обладают более высоким приоритетам. Чтобы не запутать себя, мы настоятельно рекомендуем использовать только && и || вместо and и or.

Последние публикации