Re: Using Superglobals for variable variables works

From: 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


« previous php.internals (#14449) next »