ID: 27413
Updated by: [EMAIL PROTECTED]
Reported By: rbro at hotmail dot com
-Status: Bogus
+Status: Open
Bug Type: XML related
Operating System: Linux
PHP Version: 5CVS-2004-02-26 (dev)
New Comment:
If you cast to a string, it works:
if ((string) $sxe['a'] == '123')
I do think that should be necessary though.
Previous Comments:
------------------------------------------------------------------------
[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