|
Posted by gosha bine on 05/21/07 17:39
On 21.05.2007 18:00 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
>
Good point. Here's another example for even deeper meditation
$a = range(0,4);
// $b = &$a;
foreach($a as $k => $v){
$a[99] = 5;
echo "$k=>$v\n";
}
(try uncommenting the second line).
--
gosha bine
extended php parser ~ http://code.google.com/p/pihipi
blok ~ http://www.tagarga.com/blok
Navigation:
[Reply to this message]
|