Почему эти значения не добавляются в мой массив как строки?

В дополнение к моему вопросу здесь , я действительно задаюсь вопросом, почему я не получаю строки, добавленные в мой массив, со следующим кодом.

Я получаю HTML-код из внешнего источника с помощью этого:

$doc = new DOMDocument(); @$doc->loadHTML($html); $xml = @simplexml_import_dom($doc); // just to make xpath more simple $images = $xml->xpath('//img'); $sources = array(); 

Вот массив изображений:

 Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [alt] => techcrunch logo [src] => http://s2.wp.com/wp-content/themes/vip/tctechcrunch/images/logos_small/techcrunch2.png?m=1265111136g ) ) ... ) 

Затем я добавил источники в свой массив:

 foreach ($images as $i) { array_push($sources, $i['src']); } 

Но когда я печатаю результаты:

  echo "<pre>"; print_r($sources); die(); 

Я получаю это:

 Array ( [0] => SimpleXMLElement Object ( [0] => http://www.domain.com/someimages.jpg ) ... ) 

Почему не $i['src'] рассматривается как строка? Является ли исходный элемент [src] отмеченным, где я печатаю $ images строку внутри?

Другими словами, $ images [0] является SimpleXMLElement, я это понимаю. Но почему атрибут 'src' объекта THAT не является, а является $ source как строка, когда я ссылаюсь на него как $i['src'] ?