将变量变量与超全局数组一起使用

时间:2015-04-03 19:37:21

标签: php variables dynamic superglobals

我想知道是否有可能动态读取超全局变量,我想做类似的事情:

<?php

    $n = 'GET';
    $var = '$_'.$n.'[\'something\']'; // pour lire $_GET['something'] 
    echo $var;

//Or 

    $n = 'POST';
    $var = '$_'.$n.'[\'something\']'; // pour lire $_POST['something'] 
    echo $var;

?>

此代码无法正常工作,但我想知道PHP是否可行?

2 个答案:

答案 0 :(得分:4)

您不能将variable variables与超全局,函数或类方法一起使用,而不能与$this一起使用。

手册中的引用(如果你搜索它,它就在用户评论之前):

  

警告:   请注意,变量变量不能函数类方法中的PHP 超全局数组一起使用。变量 $ this 也是一个无法动态引用的特殊变量。

答案 1 :(得分:0)

非常感谢我搜索的内容

但我们不能将其用于功能吗?

$n = '_GET';

// don't work => Undefined variable: _GET
function f($n) {
    echo ${$n}['a'];
}
f($n);

//work fine
echo ${$n}['a'];