Reply to Re: safe to delete elements of array in foreach

Your name:

Reply:


Posted by Rami Elomaa on 05/21/07 18:23

Jerry Stuckle kirjoitti:
> Rami Elomaa wrote:
>> gosha bine kirjoitti:
>>> On 20.05.2007 05:09 Jon Slaughter wrote:
>>>
>>>>
>>>> Well, your right. I assume that when it says copy it means a deep
>>>> copy. If so then essentially its working on a different variable...
>>>
>>> From my understanding, foreach doesn't make a copy of *entire
>>> array*, it just copies *current value* into the loop variable (unless
>>> you provided it by reference).
>>
>> Here's a way to test it:
>>
>> <?php
>>
>> $a = range(0,4);
>>
>> foreach($a as $k => $v){
>> if(isset($a)) unset($a);
>> echo "$k => $v<br>";
>> }
>>
>> print_r($a);
>>
>> ?>
>>
>> To me it would seem the entire array is copied, since it prints all
>> the values even after the array is unset, I got the output:
>> 0 => 0
>> 1 => 1
>> 2 => 2
>> 3 => 3
>> 4 => 4
>>
>
> Rami,
>
> That may be true on the release you're running at. But is it true for
> all releases? And will it remain that way? Unless it's documented to
> work that way, there's no way of telling.

I agree that if it is documented you can't trust it. However, looking at
http://fi2.php.net/manual/en/control-structures.foreach.php you'll find
the following: "Note: Unless the array is referenced, foreach operates
on a copy of the specified array and not the array itself." Wouldn't
that make this a _documented_ feature that you can actually rely on?

--
Rami.Elomaa@gmail.com

"Wikipedia on vähän niinq internetin raamattu, kukaan ei pohjimmiltaan
usko siihen ja kukaan ei tiedä mikä pitää paikkansa." -- z00ze

[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

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