---------- Forwarded message ---------- From: Martin Scotta <martinsco...@gmail.com> Date: Tue, Aug 25, 2009 at 6:24 PM Subject: Re: [PHP] DOMNode children iteration (was Re: array() returns something weird) To: webmas...@strefarytmu.pl
Fatal error: Call to a member function getAttribute() on a non-object in testme.php on line *121* I'm using a Apache/2.2.3 (Win32) PHP/5.2.6 Is the script correctly? I have removed the "&" in the loop and the script returns the attached file. It looks like a bogus bug? 2009/8/24 Szczepan Hołyszewski <webmas...@strefarytmu.pl> > > Hi Lars and list! > > New facts about the strange bug initially diagnosed as array() returning > NULL: > > Firstly, the issue is not really about array() returning null, but about > full > blown UndefinedBehavior(TM) progressively trashing local variables. It just > so > happened that I noticed it first with a variable to which array() had been > assigned just before things began breaking. > > Secondly, I proudly present the culprit: things break when I iterate over a > DOMNode's children *by reference* using firstChild and nextSibling: > > for($child=&$node->firstChild; $child; $child=&$child->nextSibling) > { > > //processing... > } > > No problems if iteration is done by value or by DOMNodeList (childNodes, > DOMXPath...). > > HOWEVER, > > I still consider this a bug because it destablizes PHP. After the evil loop > has finished, things happen that should never happen, like a variable being > NULL immediately after being assigned array(). > > I attach a demonstration. It is a self-contained commented script that you > can > execute from command line. Also attached is output on my machine. > > Best regards, > Szczepan Hołyszewski > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- Martin Scotta -- Martin Scotta
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php