> -----Original Message-----
> From: Jonathan Sachs [mailto:081...@jhsachs.com]
> Sent: 20 October 2010 04:48
> To: php-general@lists.php.net
> Subject: [PHP] Possible foreach bug; seeking advice to isolate the
> problem
> 
> I've got a script which originally contained the following piece of
> code:
> 
> foreach ( $objs as $obj ) {
>    do_some_stuff($obj);
> }
> 
> When I tested it, I found that on every iteration of the loop the
> last
> element of $objs was assigned the value of the current element. I
> was
> able to step through the loop and watch this happening, element by
> element.

All the other suggestions I've seen on this are essentially correct -- before 
the foreach runs, something somewhere has set $obj to be a reference to the 
last element of the array.

 It really doesn't matter whether you can find the culprit for this or not -- 
the solution is simply to put an

  unset($obj)

immediately before the foreach statement -- this will break the reference 
(without destroying anything but $obj!) and make the foreach behave exactly as 
you want.

Cheers!

Mike

 -- 
Mike Ford,
Electronic Information Developer, Libraries and Learning Innovation,  
Leeds Metropolitan University, C507 City Campus, 
Woodhouse Lane, LEEDS,  LS1 3HE,  United Kingdom 
Email: m.f...@leedsmet.ac.uk 
Tel: +44 113 812 4730





To view the terms under which this email is distributed, please go to 
http://disclaimer.leedsmet.ac.uk/email.htm

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to