Как сравнить объектные ссылки?

Alexandor1984

Новичок
Как сравнить объектные ссылки?

Есть код
PHP:
$a1 = array();
$a2 = array();
   
$a1 []= 8;
   
$a2 []= 8;
   
echo($a1 == $a2);//получаем true. Почему true, если это разные массивы?
 

Фанат

oncle terrible
Команда форума
$a1= 8;
$a2= 8;
echo($a1 == $a2);//получаем true. Почему true, если это разные переменные?
 
а зачем?
если ты имеешь дело именно с _ссылками_ на _объекты_, используй побитовое (===) сравнение..

PHP:
$foo = new ArrayObject();
$foo->append(8);
$bar = new ArrayObject();
$bar->append(8);
echo ($foo === $bar) ? "equal" : "ne";
 

Crazy

Developer
Автор оригинала: mishco
если ты имеешь дело именно с _ссылками_ на _объекты_, используй побитовое (===) сравнение..
Какой красивый новый термин -- побитовое сравнение. :cool: Сам придумал?
 
Гыы, естественно :). Если используешь что-то не зная названия, фантазия сама его порождает, ложь повторенная дважды становится правдой :D. Извините за бестолковость, да, я такой.. Лучше было сразу заглянуть в мануал, это действительно называется "оператором идентичности"... В общем
В PHP 5 сравнение объектов является более сложным процессом, чем в PHP 4, а также процессом, более соответствующим идеологии объектно-ориентированного языка
...
...при использовании оператора идентичности (===), свойства объекта считаются идентичными тогда и только тогда, когда они ссылаются на один и тот же экземпляр одного и того же класса.
http://ua2.php.net/manual/ru/language.oop5.object-comparison.php
 
Сверху