PHP 5 per-class constants can already except static arrays such as
array(1, 2, 3) as their value. I'll put the issue of global constants on
my TODO and believe PHP 5 will also support these for global constants.
However, you won't be able to create a constant with a non-constant value
such as $_GET as this goes against the whole idea of constant :)

Andi

On Thu, 24 Jan 2002, Robert Ames wrote:

> Thanks for your responses (again), it is an unfortunate situation that
> $HTTP_*_VARS must be retained for backwards compatibility until at least
> the hypothetical PHPv5.0 mark.  Having also read in this group that
> define() does not support complicated constants, I'm guessing that it's
> not currently possible to force all predefined variables to be read only
> (although that seems like the best solution in the long run).
> 
> Regarding the documenation- it is not clear, and is not emphasized that
> the arrays are disjoint.
> 
>   """Note: Some of these arrays had old names, e.g. $HTTP_GET_VARS. These
>   names still work, but we encourage users to switch to the new shorter,
>   and auto-global versions."""
> 
> 
>   """
>   $HTTP_GET_VARS
>     An associative array of variables passed to the current script via the
>     HTTP GET method.
> 
>   $_GET
>     An associative array of variables passed to the current script via the
>     HTTP GET method. Automatically global in any scope. Introduced in PHP
>     4.1.0.
>   """
> 
> ...this will be the last message I'll bother the lists with about this
> behaviour.  I just wanted to make sure that you guys who are developing
> this stuff receive feedback about how this new behaviour is working out
> for people using the new versions of PHP.  :^)
> 
> I'm 100% in favor of treating these arrays as read-only, but it would be
> very nice if E_NOTICE's were thrown when builtin arrays are modified, or
> simply to treat them as unchangeable constants.  Something to keep in
> mind if we ever get the ability to say:
> 
>   define( '_GET', $_GET );
> 
> ...which is interesting in itself... imagine:
> 
>   echo _GET['blah'];
> 
> ...instead of:
> 
>   echo $_GET['blah'];
> 
> ...since _GET/etc... are already auto-globals, and you don't want them to
> be used as left-hand-side values, it seems like they're very close to
> acting like constants already.   Just a thought. ;^)
> 
> Thanks a bunch!
> 
> --Robert
> 
> On Thu, 24 Jan 2002 16:01:24 -0600, Lars Torben Wilson wrote:
> > On Thu, 2002-01-24 at 13:42, Rasmus Lerdorf wrote:
> >> I think the real answer here is to treat these as read-only arrays. ie.
> >> never use them on the left side of the '=' and you will never run into
> >> problems.  Or if you do, be consistent and use the same array all the
> >> time.  You are writing your code with the assumption that these two
> >> arrays are the same.  Where does this assumption come from?  Hopefully
> >> not the documentation.
> >> 
> >> -Rasmus
> > 
> > No, they are properly--if lightly--documented on the following pages:
> > 
> >   http://www.php.net/manual/en/language.variables.predefined.php
> >   http://www.php.net/release_4_1_0.php
> > 
> > Robert, the $HTTP_*_VARS have, indeed, been deprecated, and this is
> > noted in the manual.
> 
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to