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