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