This happens with many more functions. So i can verify this bug.

php -r "echo md5(serialize(simplexml_load_file('example.xml'))) . PHP_EOL .
phpversion() . PHP_EOL;"

Output PHP 5.2.5:
a6d7776fcb0e9c085b0d5972df792dac
5.2.5

Output PHP 5.3.0-dev (latest snap)
3e442cb7c8507c8941011735bb46e6de
5.3.0-dev

-- Marco

On Dec 9, 2007 1:22 PM, Rob Richards <[EMAIL PROTECTED]> wrote:

> Hi Frank,
>
> Frank M. Kromann wrote:
> > Hello Everyon,
> >
> > Casting a SimpleXML object to an array gives different results in PHP
> > 5.2.5 and PHP 5.3-dev.
> >
> This is due to the implementation of the get_debug_info handler merged
> from HEAD.
> The same result happens when calling get_object_vars on a
> SimpleXMLElement object.
>
> Marcus, was it intended to only include @attributes with print_r/var_dump?
>
> Rob
> > Source:
> >
> > $xml = simplexml_load_file("sample.xml");
> >
> > foreach($xml->column as $column) {
> >     var_dump($column);
> >     var_dump((array)$column);
> > }
> >
> > sample.xml
> >
> > ?xml version="1.0"?>
> > <cpdata>
> >     <column name="ENTERTAINMENT">
> >         <module>cv</module>
> >         <module>entsimp</module>
> >     </column>
> >     <column name="SEAT CONTROL">
> >         <module>pp</module>
> >         <module>sc</module>
> >     </column>
> > </cpdata>
> >
> > PHP 5.2 output:
> > object(SimpleXMLElement)#4 (2) {
> >   ["@attributes"]=>
> >   array(1) {
> >     ["name"]=>
> >     string(13) "ENTERTAINMENT"
> >   }
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "cv"
> >     [1]=>
> >     string(7) "entsimp"
> >   }
> > }
> > array(2) {
> >   ["@attributes"]=>
> >   array(1) {
> >     ["name"]=>
> >     string(13) "ENTERTAINMENT"
> >   }
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "cv"
> >     [1]=>
> >     string(7) "entsimp"
> >   }
> > }
> > object(SimpleXMLElement)#5 (2) {
> >   ["@attributes"]=>
> >   array(1) {
> >     ["name"]=>
> >     string(12) "SEAT CONTROL"
> >   }
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "pp"
> >     [1]=>
> >     string(2) "sc"
> >   }
> > }
> > array(2) {
> >   ["@attributes"]=>
> >   array(1) {
> >     ["name"]=>
> >     string(12) "SEAT CONTROL"
> >   }
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "pp"
> >     [1]=>
> >     string(2) "sc"
> >   }
> > }
> >
> > PHP 5.3 output:
> >
> > object(SimpleXMLElement)#4 (2) {
> >   ["@attributes"]=>
> >   array(1) {
> >     ["name"]=>
> >     string(13) "ENTERTAINMENT"
> >   }
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "cv"
> >     [1]=>
> >     string(7) "entsimp"
> >   }
> > }
> > array(1) {
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "cv"
> >     [1]=>
> >     string(7) "entsimp"
> >   }
> > }
> > object(SimpleXMLElement)#5 (2) {
> >   ["@attributes"]=>
> >   array(1) {
> >     ["name"]=>
> >     string(12) "SEAT CONTROL"
> >   }
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "pp"
> >     [1]=>
> >     string(2) "sc"
> >   }
> > }
> > array(1) {
> >   ["module"]=>
> >   array(2) {
> >     [0]=>
> >     string(2) "pp"
> >     [1]=>
> >     string(2) "sc"
> >   }
> > }
> >
> > Not that the attributes are gone when SimpleXML objects are converted in
> > PHP 5.3. Is this a bug or a feature change?
> >
> > - Frank
> >
> >
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
Marco Kaiser

Reply via email to