2017-04-11 161 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();