Личный блог Артёма Санникова

Подробные пошаговые обучающие уроки по направлениям: cms системы, локальные сервера, социальные сети и операционные системы.

Категории сайта

› Логические операторы в PHP
Мельникова 620000 Россия, Свердловская обл., г. Екатеринбург. +7 953 039 559 1 info@artemsannikov.ru

Логические операторы в PHP

Дата публикации:  / Категория: Операторы / Автор: 

Для чего нужны логические операторы?

Логические операторы позволяют производить анализ числовых и текстовых данных, благодаря логическим конструкциям (И, Или, Исключающее или и Отрицание).

Синтаксис логических операторов в 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.

Важный момент: Смысл двух разных вариантов для операторов and и or в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).

Пример использования логических операторов

<?php
	// --------------------
	// foo() никогда не буде вызвана, так как эти операторы являются шунтирующими (short-circuit)

	$a = (false && foo());
	$b = (true  || foo());
	$c = (false and foo());
	$d = (true  or  foo());

	// --------------------
	// "||" имеет больший приоритет, чем "or"

	// Результат выражения (false || true) присваивается переменной $e
	// Действует как: ($e = (false || true))
	$e = false || true;

	// Константа false присваивается $f, а затем значение true игнорируется
	// Действует как: (($f = false) or true)
	$f = false or true;

	var_dump($e, $f);

	// --------------------
	// "&&" имеет больший приоритет, чем "and"

	// Результат выражения (true && false) присваивается переменной $g
	// Действует как: ($g = (true && false))
	$g = true && false;

	// Константа true присваивается $h, а затем значение false игнорируется
	// Действует как: (($h = true) and false)
	$h = true and false;

	var_dump($g, $h);
?>

Tags: , .

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *