2
我有以下代码。
$hello = "World";
$test = "hello";
echo $$test;
当我执行此我得到的结果是:世界
到目前为止好
但是当我使用的保留变量,例如$ _GET这是行不通的。
$test = "_GET";
var_dump($$test);
这里的结果是NULL。有没有办法通过变量变量来获取保留变量的值?
我有以下代码。
$hello = "World";
$test = "hello";
echo $$test;
当我执行此我得到的结果是:世界
到目前为止好
但是当我使用的保留变量,例如$ _GET这是行不通的。
$test = "_GET";
var_dump($$test);
这里的结果是NULL。有没有办法通过变量变量来获取保留变量的值?
Superglobals只能在全局范围内由变量变量取消引用。你无法实现它的事实似乎表明你的代码是在一个函数/方法中。在这种情况下,你可以使用超全局$GLOBALS
:
function foo() {
$str = '_GET';
var_dump($GLOBALS[$str]);
}
foo();
你不能以这种方式使用[超级全局(http://php.net/manual/en/language.variables.superglobals.php)。 – omerowitz
@Duvdevan是的,你可以,但只在全球范围内。 –
超全球变种总是在全球范围内。你如何使用它们? – omerowitz