#31045 [Opn]: Testing return value of simplexml_load_string
| From: | derick@php.net | Date: | Tue, 14 Dec 2004 08:07:39 +0000 |
| Subject: | #31045 [Opn]: Testing return value of simplexml_load_string | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-70188@lists.php.net to get a copy of this message | ||
ID: 31045
Updated by: derick@php.net
Reported By: rbro at hotmail dot com
Status: Open
Bug Type: SimpleXML related
Operating System: Linux
PHP Version: 5CVS-2004-12-09 (dev)
New Comment:
If we have updates, we'll get back to you. No need to keep bugging us.
Previous Comments:
------------------------------------------------------------------------
[2004-12-13 20:36:28] rbro at hotmail dot com
Just wondering if there is any update on this. I really feel that this
is a bug because there is a difference between the way the mysqli and
simplexml objects work (between the mysqli_connect() and
simplexml_load_string() functions) - since objects should work the same
across the board. Thanks.
------------------------------------------------------------------------
[2004-12-10 00:08:58] rbro at hotmail dot com
Sorry, that code example should have been the following (same result
happens):
<?php
if (($db = mysqli_connect('localhost', 'user', 'password',
'db')) ==
false)
{
echo 'equals false';
}
else
{
echo 'does not equal false';
}
?>
------------------------------------------------------------------------
[2004-12-10 00:07:39] rbro at hotmail dot com
Ok, but then why does this work as expected (when a valid host,
username, password, and db are supplied):
Reproduce code:
---------------
<?php
if (($db = mysqli_connect('localhost', 'user', 'password',
'db')) ===
false)
{
echo 'equals false';
}
else
{
echo 'does not equal false';
}
?>
Expected result:
----------------
does not equal false
Actual result:
--------------
does not equal false
------------------------------------------------------------------------
[2004-12-09 23:53:03] fmk@php.net
PHP is loosly typed so comparing an object with a boolean will result
in this behavior.
try comparing with === or check the type of the returned object.
------------------------------------------------------------------------
[2004-12-09 23:23:58] rbro at hotmail dot com
Description:
------------
The manual states that simplexml_load_string (and simplexml_load_file)
returns false on any errors. In the following example, I am loading a
valid xml stream, but the simplexml object returned seems to equal
false when it shouldn't.
Reproduce code:
---------------
<?php
$doc = simplexml_load_string('<xml></xml>');
if ($doc == false)
{
echo 'equals false';
}
else
{
echo 'does not equal false';
}
?>
Expected result:
----------------
does not equal false
Actual result:
--------------
equals false
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31045&edit=1