Сравнение сложных переменных

В РНР версии 5 сравнивать на равенство или неравенство можно не только скалярные переменные (т. е. строки и числа), но также массивы и объекты.

$х = array(1, 2, "3") ;

$у = array(1, 2, 3);

echo "Равны ли два массива? ".($х == $у);

Данный пример сообщит, что массивы $х и $у равны, несмотря на то, что последний элемент одного из них — строка, а другого — число. То есть, если оператор == сталкивается с массивом, он идет "вглубь" и сверяет также каждую пару переменных. Делает он это при помощи самого себя (рекурсивно), выполняя, в частности, все правила сравнения логических выражений, которые были описаны выше. Рассмотрим еще один пример:

$х = array(1, 2, true);

$у = array(1, 2, 3) ;

echo "Равны ли два массива? ". ($х == $у);

Смотрите, на первый взгляд, массивы $х и $у сильно различаются. Но с точки зрения РНР 3==true. Поэтому нет ничего удивительного в сообщении программы о равенстве двух данных массивов. Опишем, как оператор == работает с объектами.

class AgentSmith {}

$smit = new AgentSmith();

$wesson = new AgentSmith();

echo ($smit == $wesson)

Хотя объекты $ smith и $wesson создавались независимо друг от друга и потому различны, они структурно выглядят одинаково (содержат одинаковые данные), а потому объекты совпадают. Вывод: две переменные равны в смысле ==, если они хранят одинаковые величины.








Дата добавления: 2015-08-26; просмотров: 610;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.