2017-04-11 19 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

スーパーグローバルは、グローバルスコープ内の変数変数によってのみ参照解除することができます。あなたがそれを動作させることができないという事実は、あなたのコードが関数/メソッドにあることを示すようです。この場合は、あなたが$GLOBALSスーパーグローバルを使用することができます。

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

foo(); 
関連する問題