2017-04-11 137 views
2

我有以下代码。

$hello = "World"; 
$test = "hello"; 
echo $$test; 

当我执行此我得到的结果是:世界

到目前为止好

但是当我使用的保留变量,例如$ _GET这是行不通的。

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

这里的结果是NULL。有没有办法通过变量变量来获取保留变量的值?

+0

你不能以这种方式使用[超级全局(http://php.net/manual/en/language.variables.superglobals.php)。 – omerowitz

+0

@Duvdevan是的,你可以,但只在全球范围内。 –

+0

超全球变种总是在全球范围内。你如何使用它们? – omerowitz

回答

2

Superglobals只能在全局范围内由变量变量取消引用。你无法实现它的事实似乎表明你的代码是在一个函数/方法中。在这种情况下,你可以使用超全局$GLOBALS

function foo() { 
    $str = '_GET'; 
    var_dump($GLOBALS[$str]); 
} 

foo();