Re: Using Superglobals for variable variables works
| From: | Michael Virnstein | Date: | Fri, 28 Jan 2005 23:42:31 +0000 |
| Subject: | Re: Using Superglobals for variable variables works | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-14449@lists.php.net to get a copy of this message | ||
ok, sorry, now i have it. i read the german manual version first and that says that you can't use what i said. The german is wrong and the english version of the manual has it right. It says:
"Please note that variable variables cannot be used with PHP's Superglobal arrays within functions or class methods."
i tested it and it is true, you can't used it inside functions, because the variable would not reference to the superglobal variable this way.
<?php
function test() {
$a = '_GET';
var_dump($$a); // $$a has no reference to the superglobal $_GET
}
test();
?>
the output is
NULL
Anyway, thanks for your time. ;)
Regards, Michael
Michael Virnstein wrote:
but this does also work, atm. i'm using PHP 5.0.2 on Windows XP with apache 1.3 and if i call my php page with http://localhost/test.php?test=works it works. //test.php <?php $a = '_GET'; echo ${$a}['test']; var_dump($$a); ?> the output is: works array(1) { ["test"]=> string(5) "works" } Andi Gutmans wrote:The idea is that the following doesn't work by design: $a = "_GET"; var_dump($$a); At 11:31 PM 1/28/2005 +0100, Michael Virnstein wrote:Hi PHP-Devs, i don't know if it is a bug or a new feature of php5. The php manual says, that using superglobals for variable variables isn't working, so something like this shouldn't work: <?php $a = 'hello world'; echo ${$_GET['test']}; ?> Actually it does work. Is this intended now? Would be nice, but if it is a simple bug and i can't rely on it to work in the future, i won't use it. Hope it is a feature though. ;) Regards, Michael -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php