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