Richard, enumerator exhausted, repeat your sub-sequence again you will get it
e.g pointer and pointed

Best Regards

On Wed, Oct 21, 2009 at 7:01 PM, Richard K Miller
<richardkmil...@gmail.com> wrote:
> Hi Jill,
>
>>> <?php
>>> $items = array('apple', 'banana', 'carrot');
>>> print_r($items);
>>> foreach ($items as &$item) { }
>>
>> $item is now a reference to the last element of $items.
>>>
>>> print_r($items);
>>> foreach ($items as $item) { }
>>
>> And here, the foreach loop writes to $item for each element: thus
>> assiging that value to the last element of $items.
>
> The last element of $items is 'carrot'. Why does it print apple, banana,
> banana?
>
> It sounds like you're saying that $item should be left with the value
> 'carrot', which makes sense, but why would the original array be modified?
> (These are empty foreach loops.)
>
>>> print_r($items);
>>> ?>
>>>
>>> // Output:
>>> Array
>>> (
>>>    [0] => apple
>>>    [1] => banana
>>>    [2] => carrot
>>> )
>>> Array
>>> (
>>>    [0] => apple
>>>    [1] => banana
>>>    [2] => carrot
>>> )
>>> Array
>>> (
>>>    [0] => apple
>>>    [1] => banana
>>>    [2] => banana
>>> )
>>>
>>> Two bananas in the last set?! Not what I expected.
>>
>> You can fix your bug by using 'unset($item);' after the second
>> foreach-loop.
>>
>
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to