#39164 [Opn->Bgs]: SimpleXML : foreach create new node

From: Date: Wed, 13 Dec 2006 03:07:18 +0000
Subject: #39164 [Opn->Bgs]: SimpleXML : foreach create new node
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-106280@lists.php.net to get a copy of this message
 ID:               39164
 Updated by:       iliaa@php.net
 Reported By:      php at bouchery dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         SimpleXML related
 Operating System: Windows XP
 PHP Version:      5.1.6
 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

This is intended behavior.


Previous Comments:
------------------------------------------------------------------------

[2006-12-12 23:37:39] joshi at sencore dot com

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?

------------------------------------------------------------------------

[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] helly@php.net

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


Thread (7 messages)

« previous php.bugs (#106280) next »