Andi, does this also apply to the $GLOBALS variable?
If so, I think we can then add an apropriate Note: to the http://www.php.net/manual/en/language.variables.predefined.php page. - Markus On Sat, Apr 20, 2002 at 04:23:03PM +0300, Andi Gutmans wrote : > The way _GET and friends are implemented is the most efficient way of doing > it as it is taken care at compile-time. > For the same reason in Engine 2 you can't indirectly reference $this (which > shouldn't bother anyone). > Over time people won't have to support versions below 4.1.0 anymore. > In the meanwhile I suggest you keep on using $HTTP_*_VARS until you find > that you can move to _GET. > I don't want to screw up the implementation and performance of _GET for BC. > If you need BC you should stick to the old ones that is why they have been > left behind. > > Andi > > At 15:32 19/04/2002 -0500, Lux wrote: > >On Fri, 2002-04-19 at 15:08, Zeev Suraski wrote: > >> At 21:18 19/04/2002, Lux wrote: > >> >One other quick question: Can you make references to the superglobals, > >> >then call these as "variable variables"? > >> > >> Yes. > >> > >> Can you explain when you need to use these global structures indirectly? > > > >Sure! > > > >In an effort to be compatible with PHP 4.0.6 and under as well as > >4.1.0+, I found myself using the following code more than once: > > > >if (PHP_VERSION < '4.1.0') { > > // use $HTTP_*_VARS > >} else { > > // use $_* vars > >} > > > >While I know I can still use the $HTTP_*_VARS in all new versions of > >PHP, the docs on php.net stated that these were deprecated, so I am > >preparing for versions that didn't have them by starting to move towards > >the new variables now. But I can't ditch the $HTTP_*_VARS way > >completely for a while still, because there are a lot of PHP users still > >running 4.0.6. So I thought of a method of only having to code this if > >statement once, which was: > > > >if (PHP_VERSION < '4.1.0') { > > define ('_GET', 'HTTP_GET_VARS'); > > define ('_POST', 'HTTP_POST_VARS'); > > // etc. > >} else { > > define ('_GET', '_GET'); > > define ('_POST', '_POST'); > > // etc. > >} > > > >Now I can refer to the appropriate values automatically by saying > >${_GET} or ${_POST}, which is only two characters off from using the new > >syntax, so it's nice and simple. The only catch here is that in any > >block that I use these, I have to call global $HTTP_*_VARS first to > >whichever I use, otherwise it keeps my code nice and clean. > > > >Reasons aside though, we are talking about an inconsistency in the way > >PHP handles these new "superglobals", one that makes them look and feel > >and act (for the most part) just like ordinary variables, but makes them > >differ in small but potentially problematic ways. Using my method works > >in the global namespace, but once you enter another it fails. This > >sounds like a pretty clear bug to me, not something to be excused as "we > >meant for it to be that way". Nobody plans to add tiny inconsistencies; > >those only make peoples' lives more difficult. > > > >Lux > > > >> > >> Zeev > >> > >> > >> > > > > > > > >-- > >PHP Development Mailing List <http://www.php.net/> > >To unsubscribe, visit: http://www.php.net/unsub.php > > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, visit: http://www.php.net/unsub.php -- Please always Cc to me when replying to me on the lists. GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc "Mind if I MFH ?" "What QA did you do on it?" "the usual?" "ah... none :)" -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php