#31045 [Bgs]: Testing return value of simplexml_load_string

From: Date: Thu, 09 Dec 2004 23:09:01 +0000
Subject: #31045 [Bgs]: Testing return value of simplexml_load_string
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-69998@lists.php.net to get a copy of this message
ID: 31045 User updated by: rbro at hotmail dot com Reported By: rbro at hotmail dot com Status: Bogus Bug Type: SimpleXML related Operating System: Linux PHP Version: 5CVS-2004-12-09 (dev) New Comment: 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'; } ?> Previous Comments: ------------------------------------------------------------------------ [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

« previous php.bugs (#69998) next »