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
> 

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

Reply via email to