ID:               16687
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         Documentation problem
 Operating System: Red Hat Linux 7.1
 PHP Version:      4.2.0
 New Comment:

By design ? hehe

Ok, I *think* it was not 'by design', I think this just turned out to
be the way it is after it has been implemented.  I don't think while
writing the code and was kept in mind 'no, we do not want them not to
be accessible in functions with variable variables'.

Ok, so much. Versions of PHP has already been released, so we should
document it.

Btw, goba, using the search on php.net I couldn't find a single page
refering to the super globals ... ? (I haven't yet browser through the
manual index as I tend to find that annyoing)


Previous Comments:
------------------------------------------------------------------------

[2002-04-19 15:17:41] [EMAIL PROTECTED]

I have already reported this problem, but nothing happened.
Superglobals seemed to be accessible with variable variables in the
global scope, but not in any local scope (inside a function). Derick
told me, that it is by design, but IMHO this is incosistent, and quite
ugly :((

--
Goba

------------------------------------------------------------------------

[2002-04-19 14:53:51] [EMAIL PROTECTED]

Reclassified.

It should be documented that due the special way super globals are
treated the cannot be used with variable variables.

------------------------------------------------------------------------

[2002-04-19 12:40:50] [EMAIL PROTECTED]

True true. Derick (or someone else) mind briefly explaining why this
is/has to be different?

------------------------------------------------------------------------

[2002-04-19 11:11:00] [EMAIL PROTECTED]

But then why does it work under certain circumstances and not others? 
Regardless whether intended or not, this is inconsistent behaviour.

I also think that having these differences between regular variables
and the "superglobals" shouldn't be necessary.  If I can't use them in
the same contexts as regular variables, then I would personally prefer
the $HTTP_*_VARS instead, because you can.

I have found my approach to abstracting this difference ($HTTP_*_VARS
vs. $_*) between PHP versions to be really beneficial to my scripts.  I
can abstract them both down to one name, and use a single reference to
the appropriate one instead of sticking if statements every time I need
to know which one to use.

Sorry to keep buggin' ya, but I think this may be a fair enough
argument for change.

------------------------------------------------------------------------

[2002-04-19 10:33:59] [EMAIL PROTECTED]

You can't use superglobals indirectly, check this:

$t = "_GET";
var_dump ($$t);

doesn't work neither, and it wasn't supposed to work.

However, this does work (because $HTTP_GET_VARS is not a superglobal):

$t = "HTTP_GET_VARS";
var_dump ($$t);


Derick

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/16687

-- 
Edit this bug report at http://bugs.php.net/?id=16687&edit=1

Reply via email to