Все для создания и продвижения сайтов

Верстка, программирование, SEO

Логические операции php

Прежде чем мы будем обсуждать логические операции в php, рассмотрим таблицу истинности:

таблица истинности

У нас на входе есть два операнда X1 и X2, они могут принимать значения 0 или 1. 0 - значит "ложь", 1 - "истина".

Давайте же узнаем о 4 основных логических операциях и что они значат:

  • X1, X2 - обычные переменные.
  • !X1 - логическое отрицание, если X1 = 0, то 1, а если X1 = 1, то 0 это просто.
  • X1 || X2 - логическое "или", если одно значение X1 или X2 равно 1, то и операция равна единице, только если X1 и X2 равно 0 и операция будет равна 0.
  • X1 && X2 - логическое "и", результат 1, только когда оба значения X1 и X2 равны 1.
  • X1 ^ X2 - логическое исключающее "или", если хоть одно значение у X1 и X2 равно 1, результат будет равен 1.

Перейдём к практике, создадим 2 переменные x и y, а также две булевские переменные(которые могут применять значения 0 или 1).

<?php
	$x = 1;
	$y = 2;
	$rez1 = $x > $y;
	$rez2 = $x < $y;
	$rez3 = $x == $y;
	$rez4 = $x >= $y;
	echo "$x > $y = $rez1
"; echo "$x < $y = $rez2
"; echo "$x == $y = $rez3
"; echo "$x >= $y = $rez4
";

Выведем результат и получим на экране:

1 > 2 = 
1 < 2 = 1
1 == 2 = 
1 >= 2 = 

Где мы получили истину - результат 1, а где 0 (в php пустое значение и есть 0) - это ложь. Тут все понятно, давайте перейдём к более сложным примерам.

Логическое "отрицание"

<?php
	$x = 1;
	$y = 2;
	$res5 = !($y > $x);
	echo "!($y > $x) = $rez5
";

В результате получим 0, логическое отрицание меняет истину на ложь и наоборот.

Логическое "или"

<?php
	$x = 1;
	$y = 2;
	$rez6 = ($x > $y) || ($x == $x);
	echo "($x > $y) || ($x == $x) = $rez6
";

Получим истину, ведь одно из выражений верное ($x == $x).

Логическое "и"

<?php
	$x = 1;
	$y = 2;
	$rez7 = ($x > $y) && ($x == $x);
	echo "($x > $y) && ($x == $x) = $rez7
";

Получим ложь, ведь одно из выражений неверное ($x > $y), чтобы получить истину, оба должны быть истинными.

Логическое "отрицающее или"

<?php
	$x = 1;
	$y = 2;
	$rez8 = ($x > $y) ^ ($x == $x);
	echo "($x > $y) ^ ($x == $x) = $rez8
";

Получим истину, ведь одно из выражений истина.

Далее вам следует узнать о логической конструкции if-else, об этом читайте в - if-else в php с примерами.

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.