PHP 5.3 bug or changed feature??

From: Date: Fri, 07 Dec 2007 22:09:58 +0000
Subject: PHP 5.3 bug or changed feature??
Groups: php.internals 
Request: Send a blank email to internals+get-33858@lists.php.net to get a copy of this message
Hello Everyon, Casting a SimpleXML object to an array gives different results in PHP 5.2.5 and PHP 5.3-dev. 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

« previous php.internals (#33858) next »