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