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