2017-04-11 6 views
2

Ich habe folgenden Code.

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

Wenn ich dies ausführen ich als Ergebnis: Welt

So weit gut

Aber wenn ich einen reservierten Variable verwendet werden, zB $ _GET es funktioniert nicht.

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

Hier ist das Ergebnis NULL. Gibt es eine Möglichkeit, Werte einer reservierten Variablen über eine Variable zu erhalten?

+0

kann nicht verwendet werden [Superglobals] (http://php.net/manual/en/language.variables.superglobals.php) auf diese Weise. – omerowitz

+0

@Duvdevan Ja können Sie, aber nur im globalen Rahmen. –

+0

Superglobale sind immer im globalen Geltungsbereich. Wie können Sie sie benutzen? – omerowitz

Antwort

2

Superglobale können nur durch Variablenvariablen im globalen Gültigkeitsbereich dereferenziert werden. Die Tatsache, dass Sie es nicht zum Laufen bringen, scheint darauf hinzudeuten, dass Ihr Code in einer Funktion/Methode ist. In diesem Fall können Sie die $GLOBALS superglobal verwenden:

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

foo();