Re: nested, referenced foreach & implicit current array pointer issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



speedy wrote:
> Hello Martin,
> 
> Wednesday, January 31, 2007, 4:50:22 PM, you wrote:
> 
>> There is nothing wrong with the global keyword, just use $GLOBAL
>> ['arr'] instead to avoid the reference, or create a copy by
>> assignment.
> 
> Yep, already did, 10x for the suggestion. :)
> 
>> Anyway, I couldn't find this change of behaviour in the foreach in
>> the changelog, but it seems it have been introduced around may
>> 2005. Maybe is too late to complain, but, now that I know, I think
>> this behaviour doesn't seem right. 
> 
> I'd rather see global being equal to $GLOBAL[] in combination with removal 
> of hidden current pointer from arrays. But I don't have much experience in 
> designing high-level languages nor did I give a lot of thought about it in the 
> global picture. :)

regardless of whether your right or wrong from a theoretical/language POV
(I didn't really understand your explaination completely - which is probably
my lack of insight ;-) I would proffer the following:

use of 'global' is bad practice in anything that resembles a complex/real
application. your function has no control over the what $arr is and any piece of
code code change $arr into *anything* at any time.

instead I would suggest that your better off doing one of 2 things:

1. pass in the array to the function explicitly.
2. use a special function that can be called to retrieve the array
from within your example function.

bad advice? I'm open to being corrected :-)

> 

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux