:PHP : 객체 comparaison (웹 서비스를 통해 전송 그들 중 하나)이 같은 두 개체를 비교하기 위해 노력하고있어
if($obj1==$obj2){
...
하지만 내 비교 항상 false를 반환!
$ obj1은 "MySoapObject"유형의 (Webservice를 통해 호출 된) 내 기능의 매개 변수입니다.
$ obj2는 내 데이터베이스에서로드 된 "MySoapObject"유형의 개체입니다. 내가하려고하면 그런데
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
)
)
)
,이 : 내 두 개체의 내 테스트에서 print_r에서
나에게이 줄
if(print_r($obj1)==print_r($obj2)){
...
결과는 true가됩니다!
어디에서 문제가 될 수 있는지 생각해보십시오. 그것을 해결하는 방법? 도움 주셔서 감사합니다.
확인 참고로이 https://stackoverflow.com/questions/20531967/comparing-2-objects-php – claudio
, 'print_r ($ obj1) == print_r ($ obj2)'가'TRUE' 인 이유는'print_r()'이 문자열을 반환하라는 플래그를 전달하지 않으면'TRUE'를 반환하기 때문입니다. 그래서 당신은 본질적으로'TRUE == TRUE'를 비교하고 있습니다. 이것은 분명히 TRUE입니다. –
http://php.net/manual/en/language.oop5.object-comparison.php을 읽으셨습니까? 두 개체가 모두 같은 클래스의 인스턴스인지 확인합니다. BTW : 중첩 된 개체가있는 경우 개체 비교를 사용하면 재귀 때문에 좋은 아이디어가 아닙니다. –