Логические операторы PHP
Несмотря на неограниченность во вложенности одних условий в другие злоупотреблять данной возможностью при написании PHP-скриптов не рекомендуется. Вместо этого следует обратить внимание на логические операторы, позволяющие совершать проверки сразу нескольких переменных в одну строку и, тем самым, повысить удобочитаемость кода, ускорить скорость его интерпретации.
Список операторов
Предметом обзора стали логические и служащие для сравнения операторы, в языке количество категорий больше. К первым относятся:
- ! – отрицание;
- and – «и» (также: &&);
- xor – «исключающее или»;
- or – «или» (также: ||).
Отличия буквенной записи и ввода спецсимволов проявляется в приоритетностях, служащих для разграничения рассматриваемых при проверке элементов. Сократить конструкции условий поможет тернарный оператор.
Второй тип содержит знаки вида «равно», «меньше», «больше» и подобные, также может задействоваться в проверках if-elseif-elseи, несмотря на сходство с символами арифметических действий, поддерживают не только числа. Например, с их помощью можно сравнивать строки на предмет полной идентичности друг другу, допускаются и операции со значениями, выдаваемыми определёнными функциями.
Замечание для пользователей, переводящих свои проекты на восьмую версию языка, касается случаев преобразования строк при сравнениях с числами. Это приводило к, на первый взгляд, нелогичным результатам, однако если какой-либо скрипт основывается на данной особенности языка, важно переписать программу перед установкой новой спецификации.
К примеру, при попытках узнать, равно ли число «0» букве «z», интерпретатор выдавал значение «истина» (true) вместо ошибки, вызванной задействованием разных типов хранения содержимого. Внимание следует уделить и математическим операторам, служащим для сложения, вычитания, умножения, деления.
Варианты использования
Несколько условий в одной строке
<?php
$abc = 123;
$xyz = 999;
if($abc == 123 and $xyz == 321) {
echo»abc равен 123, а xyz равен 321″;
} elseif($abc == 123 xor $xyz == 999) {
echo»abc равен 123 или xyz равен 321, но не оба одновременно!»;
} elseif ($abc == 0 or $xyz = 999) {
echo»abc равен 0 и/или xyz равен 999″;
}
Правильной будет последняя проверка.
Арифметические действия
<?php
$a = 1;
$b = 8787;
$c = 3;
$result = $a+$b/$c;
print $result;
Сначала 1 прибавится к 8787, после чего 8787 будет разделено на 3 и вернёт число 2930, которое появится на экране пользователя.
Условия с тернарным оператором
<?php
if ($abc < $xyz) {
$var = $abc;
} else {
$var = $xyz;
}
Этот код делает то же самое, что:
<? $var = ($abc < $xyz) ? $abc : $xyz; ?>