Re: SimpleXML: A bug or just an annoyance?

From: Date: Mon, 13 Nov 2006 15:29:33 +0000
Subject: Re: SimpleXML: A bug or just an annoyance?
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-26543@lists.php.net to get a copy of this message
Stut wrote: > Sebastian Bergmann wrote: >> 1 <?php >> 2 $root = simplexml_load_string('<root >> id="1"><node/></root>'); >> 3 >> 4 $array = array(); >> 5 $array[$root['id']] = 'value'; >> 6 >> 7 $key = (int)$root['id']; >> 8 $array[$key] = 'value'; >> 9 ?> >> Warning: Illegal offset type in /home/sb/test.php on line 5 >> > > I've not used it much, but I believe you need to cast attributes coming > out of SimpleXML, in this case probably to an int. that sounds about right. my experience with SimpleXML is that every is either a string, an object, an array depending on how you are looking at it and regardless of the situation auto-casting can be relied on to NOT do what you want/expect ... the most problematic thing I found with simpleXML was the complete lack of means to inspect an objects structure/content using funcs like var_dump() [it seems lots of __toString() magic lays waste to any attempt to look inside the object] from what I gather the described 'annoyance' is indicative of the prescribed SimpleXML behaviour. I personally believe that SimpleXML is too clever and/or intuitive for it's own good - or maybe I'm just incredibly stupid, either way I decided a while back to stick to using the DOM extension for anything XML related because I found it so much easier to use and understand. I guess nothing in live is ever simple ;-) > > -Stut >

« previous php.internals (#26543) next »