Я пытаюсь сравнить два объекта, как это:
if($obj1==$obj2){
...
Но мое сравнение всегда возвращает ложь!
$ obj1 — это параметр моей функции (вызываемой через веб-сервис) типа «MySoapObject».
$ obj2 — это объект типа «MySoapObject», загруженный из моей базы данных.
В моем тесте print_r моих обоих объектов дают мне это:
stdClass Object
(
[establishment] => stdClass Object
(
[f_establishment_id] => 4
[f_name] => MyEstablishment
[f_display_name] => v
[f_main_web_link] =>
[f_contact] =>
[f_country_code] =>
[f_city] =>
[f_zip_code] =>
[f_postal_address] =>
[f_default_language] =>
[f_timezone] =>
[f_cloud_synchronisation_action] => TO_SYNC
)
[site_list] => Array
(
[0] => stdClass Object
(
[f_site_id] => Site1
[f_status] => TO_DISABLE
[f_name] => Site1
)
)
)
Кстати, если я попробую это:
if(print_r($obj1)==print_r($obj2)){
...
Результат верный!
У вас есть представление о том, где может быть проблема? Как это решить?
Спасибо за вашу помощь.
для сравнения объектов вы можете использовать:
if($obj1===$obj2){
}
проверить документацию
http://php.net/manual/en/language.operators.comparison.php
Других решений пока нет …