Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод указания PHP (2012 год) Дзгоев, Бетрозов,...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.13 Mб
Скачать

Операции сравнения

Это в своем роде уникальные операции, потому что независимо от типов своих аргументов они всегда возвращают одно из двух: false или true.

Операции сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true, а если нет — false.

а == b — истина, если, а равно b.

а != b — истина, если, а не равно b.

а < b — истина, если, а меньше b.

а > b — истина, если, а больше b.

а <= b — истина, если, а меньше либо равно b.

а >= b — истина, если, а больше либо равно b.

Следует отметить, что в РНР сравнивать можно только скалярные (то есть строки и числа) переменные. Для массивов и объектов этого делать нельзя. Их даже нельзя сравнивать на равенство (при помощи оператора ==), но при выполнении такой операции РНР не выдает предупреждения.

Операция эквивалентности

В РНР версии 4 появился новый оператор сравнения — тройной знак равенства = = =, или оператор проверки на эквивалентность.

Например, следующий код выведет, что значения переменных равны:

$а=10;

$b="10";

if($a==$b) echo "а и b равны";

Это несмотря на то, что переменная, $а представляет собой число, а $b - строку.

Внимание!

$а=0; // ноль

$b=""; // пустая строка

if($a==$b) echo "а и b равны";

Хотя $а и $b явно не равны даже в обычном понимании этого слова, программа заявит, что они совпадают. Дело в том, что если один из операндов логического оператора может трактоваться как число, то оба операнда трактуются как числа. При этом пустая строка превращается в 0, который затем и сравнивается с нулем. Неудивительно, что оператор echo срабатывает.

Проблему решает оператор эквивалентности === (тройное равенство). Он не только сравнивает два выражения, но также их типы.

Пример 12

$а=0; // ноль

$b=" "; // пустая строка

if($a===$b) echo "а и b равны";

Вот теперь ничего напечатано не будет. Но возможности оператора эквивалентности идут далеко за пределы сравнения "обычных" переменных. С его помощью можно сравнивать также и массивы, объекты и т. д. Это очень удобно. пример:

$а=аrrау('а'=>'ааа');

$b=array('b'=>'bbb');

if ($a==$b) echo "С использованием == a=b<br>";

if ($a===$b) echo "С использованием === a=b<br>";

Если запустить представленный код, то выведется первое сообщение, но не второе. Произойдет это по той причине, что, как мы уже говорили, операнды-массивы преобразуются в строки Array, которые затем и будут сравниваться. Оператор === лишен этого недостатка, поэтому работает верно. Разумеется, для оператора === существует и его антипод — оператор !== (он состоит также из трех символов!).

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

Логические операции предназначены исключительно для работы с логическими выражениями и также возвращают false или true.

| а — истина, если, а ложно, и наоборот.

а && b — истина, если истинны и а, и b.

a | | b — истина, если истинны или а, или b, или они оба.

Обратите внимание, что, например, | и | | — два совершенно разных оператора, один из которых может потенциально возвращать любое число, а второй — только false и true.