ID: 27413 Updated by: [EMAIL PROTECTED] Reported By: rbro at hotmail dot com -Status: Open +Status: Bogus Bug Type: XML related Operating System: Linux PHP Version: 5CVS-2004-02-26 (dev) New Comment:
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php As Derick said, the explicit conversion is necessary because php tries to convert the second argument to the first argument's type which is an object. Generally it could work when you switch the order of arguments but the explicit conversion makes it visible what you do. Previous Comments: ------------------------------------------------------------------------ [2004-02-27 09:04:12] [EMAIL PROTECTED] If you cast to a string, it works: if ((string) $sxe['a'] == '123') I do think that should be necessary though. ------------------------------------------------------------------------ [2004-02-27 09:00:12] rbro at hotmail dot com Yes, doing 'var_dump($sxe['a']);' gives: object(simplexml_element)#2 (1) { [0]=> string(3) "123" } But then changing my if line to: if ($sxe['a'][0] == '123') doesn't work either. How does one then compare an attribute to another value? The documentation at http://docs.php.net/en/ref.simplexml.html states that my original if statement should work (the example under 'Using attributes'). That example doesn't work locally either because of the same issue on the switch statement used. ------------------------------------------------------------------------ [2004-02-27 02:16:45] [EMAIL PROTECTED] Try doing a 'var_dump($sxe['a']);'...comparing string to an object can't really be true in any case? ------------------------------------------------------------------------ [2004-02-27 00:11:03] rbro at hotmail dot com Description: ------------ Doing the following SimpleXML text comparison does not give the expected results. Reproduce code: --------------- <?php $sxe = simplexml_load_string('<root a="123" />'); echo $sxe['a']."\n"; if ($sxe['a'] == '123') { echo 'They are equal.'."\n"; } else { echo 'They are not equal.'."\n"; } ?> Expected result: ---------------- 123 They are equal. Actual result: -------------- 123 They are not equal. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=27413&edit=1