ID: 39164
Comment by: joshi at sencore dot com
Reported By: php at bouchery dot com
Status: Open
Bug Type: SimpleXML related
Operating System: Windows XP
PHP Version: 5.1.6
New Comment:
After an afternoon of research I have discovered that:
The resolution to Bug #35785 caused this problem.
CVS Revision 1.192 (by Helly) was the commit.
I have to agree with php at bouchery dot com that this is unfortunate
behavior. Who would expect that their structure would change just
because they read it?
Previous Comments:
------------------------------------------------------------------------
[2006-11-20 21:46:39] php at bouchery dot com
If there is no nodes, I browse like an array, no data is display, but a
node was created. If I do it twice, it display something !
Browsing tree MUST NOT create node.
Look at this :
<?php
$xml = simplexml_load_string('<root></root>');
foreach( $xml->a as $a ) echo "a = $a\n";
foreach( $xml->a as $a ) echo "a = $a\n";
?>
A the second time, it display : "a ="
Sorry to insist, but it is not "normal" (and I can't see that in the
documentation !!).
------------------------------------------------------------------------
[2006-10-16 16:14:31] php at bouchery dot com
I didn't see that in the documentation.
Even if it's written, it's a strange behaviour and shoud be a change
request.
Reading data should not modify it.
------------------------------------------------------------------------
[2006-10-16 15:57:41] [EMAIL PROTECTED]
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
.
------------------------------------------------------------------------
[2006-10-16 11:49:37] php at bouchery dot com
Description:
------------
When using "foreach" on inexisting node, a new node is create.
Reproduce code:
---------------
<?php
$xml = simplexml_load_string('<root><a>Node a</a></root>');
foreach( $xml->b as $b );
echo $xml->asXML();
?>
Expected result:
----------------
<?xml version="1.0"?>
<root><a>Node a</a></root>
Actual result:
--------------
<?xml version="1.0"?>
<root><a>Node a</a><b/></root>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39164&edit=1