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

Reply via email to