note 93968 deleted from language.oop5.object-comparison by googleguy

From: Date: Tue, 22 Oct 2013 11:17:27 +0000
Subject: note 93968 deleted from language.oop5.object-comparison by googleguy
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-197079@lists.php.net to get a copy of this message
Note Submitter: RPaseur at NationalPres dot org ---- 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@example.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 } ?>

« previous php.notes (#197079) next »