Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
льные операции, потому что независимо от типов своих 
аргу- 
ментов они всегда возвращают одно из двух: false или true. Операции сравнения 
позволяют сравнивать два значения между собой и, если условие выполнено, 
возвра- 
щают true, а если нет — false. 
r a == b — истина, если a равно b. 

Часть III. Основы языка PHP 138 
r a != b — истина, если a не равно b. 
r a < b — истина, если a меньше b. 
r a > b — аналогично больше. 
r a <= b — истина, если a меньше либо равно b. 
r a >= b — аналогично больше либо равно. 
Следует отметить, что в PHP сравнивать можно только скалярные (то есть строки и 

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

рации PHP не выдает предупреждения. Так что удивившись как-то раз, почему это 
два совершенно разных массива при сравнении их с помощью == оказываются вдруг 
одинаковыми, вспомните, что перед сравнением оба операнда преобразуются в слово 

array, которое потом и сравнивается. 
Операции эквивалентности 
В PHP версии 4 появился новый оператор сравнения — тройной знак равенства ===, 
или оператор проверки на эквивалентность. Как мы уже замечали ранее, PHP 
доволь- 
но терпимо относится к тому, что строки неявно преобразуются в числа, и 
наоборот. 
Например, следующий код выведет, что значения переменных равны: 
$a=10; 
$b="10"; 
if($a==$b) echo "a e b .aaiu"; 
И это несмотря на то, что переменная $a представляет собой число, а $b — строку.
 
Впрочем, данный пример показывает, каким PHP может быть услужливым, когда 
нужно. Давайте теперь посмотрим, какой казус может породить эта "услужливость". 

$a=0; // ноль 
$b=""; // пустая строка 
if($a==$b) echo "a и b равны"; 
Хотя $a и $b явно не равны даже в обычном понимании этого слова, программа зая- 

вит, что они совпадают. Почему так происходит? Дело в том, что если один из 
опе- 
рандов логического оператора может трактоваться как число, то оба операнда 
трак- 
туются как числа. При этом пустая строка превращается в 0, который затем и 
сравнивается с нулем. Неудивительно, что оператор echo срабатывает. 
Проблему решает оператор эквивалентности === (тройное равенство). Он не только 
сравнивает два выражения, но также их типы. Перепишем наш пример с использова- 
нием этого оператора: 
$a=0; // ноль 
$b=""; // пустая строка 
if($a===$b) echo "a e b .aaiu"; 

Глава 7. Переменные, константы, выражения 139 
Вот теперь ничего напечатано не будет. Но возможности оператора эквивалентности 

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

пример: 
$a=array(’a’=>’aaa’); 
$b=array(’b’=>’bbb’); 
if($a==$b) echo "С использованием == a=b
"; if($a===$b) echo "С использованием === a=b
"; Если запустить представленный код, то выведется первое сообщение, но не второе. Произойдет это по той причине, что, как мы уже говорили, операнды-массивы преоб- разуются в строки array, которые затем и будут сравниваться. Оператор === лишен этого недостатка, поэтому работает верно. Разумеется, для оператора === существует и его антипод — оператор !=== (он состо- ит из целых четырех символов!). Думаю, что не нужно объяснять, как он работает. Логические операции Эти операции предназначены исключительно для работы с логическими выражения- ми и также возвращают false или true. r ! a — истина, если a ложно, и наоборот. r a && b — истина, если истинны и a, и b. r a || b — истина, если истинны или a, или b, или они оба. Следует заметить, что вычислени
 
<<-[Весь Текст]
Страница: из 287
 <<-