note 93968 added to language.oop5.object-comparison

From: Date: Thu, 08 Oct 2009 23:09:51 +0000
Subject: note 93968 added to language.oop5.object-comparison
Groups: php.notes 
Request: Send a blank email to php-notes+get-161574@lists.php.net to get a copy of this message
SimpleXML Objects are different, even if made from the same XML. <?php // RAY_SimpleXML_compare.php error_reporting(E_ALL); echo "<pre>\n"; // TWO SimpleXML OBJECTS ARE NOT EQUAL WITH COMPARISON OPERATORS. PHP 5.2.10 // AN XML STRING $xml = '<?xml version="1.0" encoding="utf-8"?> <thing> <number>123456</number> <email>user@domain.com</email> <state>CA</state> </thing>'; // SHOW THE XML STRING echo htmlentities($xml); // MAKE TWO OBJECTS $obj1 = SimpleXML_Load_String($xml); $obj2 = SimpleXML_Load_String($xml); // COMPARE OBJECTS AND FIND THAT THIS ECHOS NOTHING AT ALL if ($obj1 === $obj2) echo "\n\nOBJECTS IDENTICAL "; if ($obj1 == $obj2) echo "\n\nOBJECTS EQUAL "; // SHOW THE OBJECTS - NOTE DIFFERENT SimpleXMLElement NUMBERS echo "\n\n"; var_dump($obj1); var_dump($obj2); // ITERATE OVER THE OBJECTS foreach ($obj1 as $key => $val1) { $val2 = $obj2->$key; var_dump($val1); var_dump($val2); if ($val1 == $val2) echo "\n\nOBJECTS EQUAL"; // ECHOS NOTHING // RECAST AS STRINGS AND COMPARE AGAIN $val1 = (string)$val1; $val2 = (string)$val2; if ($val1 === $val2) echo "STRINGS IDENTICAL: $key => $val1 \n\n"; // CONMPARISON SHOWS STRINGS IDENTICAL } ---- Server IP: 192.41.40.227 Probable Submitter: 74.9.128.130 ---- Manual Page -- http://www.php.net/manual/en/language.oop5.object-comparison.php Edit -- https://master.php.net/note/edit/93968 Del: integrated -- https://master.php.net/note/delete/93968/integrated Del: useless -- https://master.php.net/note/delete/93968/useless Del: bad code -- https://master.php.net/note/delete/93968/bad+code Del: spam -- https://master.php.net/note/delete/93968/spam Del: non-english -- https://master.php.net/note/delete/93968/non-english Del: in docs -- https://master.php.net/note/delete/93968/in+docs Del: other reasons-- https://master.php.net/note/delete/93968 Reject -- https://master.php.net/note/reject/93968 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#161574) next »