Re: Re: Possible foreach bug; seeking advice to isolate the problem
| From: | Peter Lind | Date: | Sat, 23 Oct 2010 06:34:27 +0000 |
| Subject: | Re: Re: Possible foreach bug; seeking advice to isolate the problem | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-309036@lists.php.net to get a copy of this message | ||
On 23 October 2010 07:50, Jonathan Sachs <081012@jhsachs.com> wrote:
> Gary wrote:
>
>>Better. I can tell you how to solve it:
>> $a = array('a', 'b','c');
>> foreach($a as &$row){
>> //you don't have to do anything here
>> }
>> unset($row); // <----<<< THIS IS KEY!
>> print_r($a);
>> foreach($a as $row){
>> echo "<br />".$row;
>> }
>> print_r($a);
>
> I see what you're doing now: unsetting the variable, not the array
> element referenced by the variable. You're right, it does work.
>
> It's not exactly better than knowing what's wrong, though... it's
> different. I already had a workaround, although it was not quite as
> elegant. My desire now is to find out whether the behavior I described
> is due to something I don't understand about PHP, or to a bug. If it's
> something I don't understand, I want to understand it. If it's a bug,
> I want to report it.
It is not a bug - somewhere before the foreach loop you've got, a
variable is being referenced, and that's throwing things off.
Otherwise, unsetting the variable would have no effect on the problem
you're seeing.
Regards
Peter
--
<hype>
WWW: plphp.dk / plind.dk
LinkedIn: plind
BeWelcome/Couchsurfing: Fake51
Twitter: kafe15
</hype>