Hi Marcus,

Will there be another way to do this or will they only be accessible from
the object?

- Frank

> Hello Rob,
> 
>   this is intended. The 5.2 solution is just a hack and returns a wrong
> result in the first place. The hack was however introduced to make
> development easier. Now with 5.3 we were able to change the API and
coudl
> apply the solution that was first developed in HEAD.
> 
> marcus
> 
> Sunday, December 9, 2007, 1:22:09 PM, you 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
> >>
> >>   
> 
> 
> 
> 
> Best regards,
>  Marcus
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to