Reply to When is an array not an array?

Your name:

Reply:


Posted by Andrew C on 10/30/06 14:24

Hi, folks.

I've encountered what seems to me to be something of an oddity while playing
around with XML parsing in PHP, and I wondered if any of you might be able
to clear up my confusion...

Here's a little code:

$xmlDoc = new DOMDocument();
$xmlDoc->load('widget_data.xml');
$widgets = $xmlDoc->getElementsByTagName('widget');

My understanding was that '$widgets' is an array of elements, and the
following 'foreach' iterates through that array (this works):

foreach ($widgets as $widget)
{
....
}

However, I get an error if I try to access '$widgets' using square-brackets,
e.g.:

$widget = $widgets[0];

(The error is: "Fatal error: Cannot use object of type DOMNodeList as
array".)

PHP confirms that the first element of the 'array' has an index/key of '0'
with the following (or similar), but won't let me access it directly using
'$widgets[0]':

foreach ($widgets as $key => $widget)
{
echo("<p>" . $key . "</p>\n");
}

Does anyone have an explanation as to why a DOMNodeList can be accessed like
an array using 'foreach', but won't allow square-brackets to be used? What
exactly *is* a DOMNodeList?

Thanks for any help.

A.

PS. I am aware that DOMNodeLists have an 'item()' method with which nodes
within the list can be referred to via index, but my confusion still stands
as to why I can't simply use '[]'s.

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация