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