Php 可变超球
在PHP中Php 可变超球,php,Php,在PHP中 var_dump(${'_GET'}); // array(0) { } - #1 $var = '_GET'; var_dump(${$var}); // array(0) { } - #2 function test() { var_dump(${'_GET'}); // array(0) { } - #3 $var = '_GET'; var_dump(${$var}); // NULL - #4 } test(); 发生了什么事?这不是一个b
var_dump(${'_GET'}); // array(0) { } - #1
$var = '_GET';
var_dump(${$var}); // array(0) { } - #2
function test() {
var_dump(${'_GET'}); // array(0) { } - #3
$var = '_GET';
var_dump(${$var}); // NULL - #4
}
test();
发生了什么事?这不是一个bug
警告
请注意,变量不能与PHP的
函数或类方法中的超全局数组。变量
$这也是一个无法引用的特殊变量
动态地
对于输出
NULL
:E_注意:键入8——未定义的变量:_GETI只是想理解PHP文档中的这个“警告”,因为它似乎并不完全正确,除非我还遗漏了什么?最初的问题似乎是一个范围问题——就像任何(普通)全局变量一样?如果只包含global${$var}代码>在变量转储之前(${$var})代码>在函数内部,然后它看起来工作正常(已测试PHP5.2、5.5)。我错过了什么吗?@w3d:警告意味着你不能$$var
,特别是当$var
是“\u GET”
等时。它对所有其他变量都起作用。尽管你可以先调用全局$$var
,就像对任何普通全局变量一样。