php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #15730 Autoglobal (Variable) Variables within funktions.
Submitted: 2002-02-26 08:45 UTC Modified: 2003-03-11 19:05 UTC
From: postings dot php dot net at hans dot spath dot de Assigned:
Status: Not a bug Package: Feature/Change Request
PHP Version: 4.1.1 OS: Win2k
Private report: No CVE-ID: None
 [2002-02-26 08:45 UTC] postings dot php dot net at hans dot spath dot de
I tried to access the autoglobal variables via the variable variables 'trick'. But that doesn't work within functions.

Examples:

That works:
<?
?><hr><?
$test1 = '_TEST';
$test2 = '_SERVER';
$_TEST = '[test1]';
?><pre><?
var_dump( $test1 );
var_dump( ${'_TEST'} );
var_dump( ${$test1} );
var_dump( ${"$test1"} );
?><hr><?
var_dump( $test2 );
var_dump( ${'_SERVER'} );
var_dump( ${$test2} );
var_dump( ${"$test2"} );
?></pre><hr><?


That doesn't work:
<?
function foolme()
{
	?><hr><?
	$test1 = '_TEST';
	$test2 = '_SERVER';
	$_TEST = '[test1]';
	?><pre><?
	var_dump( $test1 );
	var_dump( ${'_TEST'} );
	var_dump( ${$test1} );
	var_dump( ${"$test1"} );
	?><hr><?
	var_dump( $test2 );
	var_dump( ${'_SERVER'} );
	var_dump( ${$test2} );
	var_dump( ${"$test2"} );
	?></pre><hr><?
}
foolme();


--
I found that, while writing a class for processing html forms:

function __wakeup() {
	$method = $this->_method;
	$this->_FORM = &${"_$method"};
}

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-02-26 09:52 UTC] yohgaki@php.net
It seems PHP(Zend) is looking up local (active) symbol table, since  you are accessing via vairable variable. 

Can we fix this?
 [2002-03-01 12:13 UTC] sander@php.net
Duplicate of 15810... (that bug has more info than this one...)
 [2002-06-18 19:27 UTC] sniper@php.net
As you've already done, just add your comments to the open report. Thank you.

 [2003-03-11 18:22 UTC] postings dot php dot net at hans dot spath dot de
*grrr* I'm browsing through my old bug reports and what must I see? Some of them got Status "Bogus" instead of "Closed" or "Duplicate" ...
 [2003-03-11 19:05 UTC] sniper@php.net
Please read what I said in my previous comment and stop reopening these reports.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon Apr 29 14:01:30 2024 UTC