正在尝试从字符串名称访问$_SERVER(或任何全局)变量



今天我遇到了这样一个可怕的情况。这个bug似乎与PHP有关。

我正在尝试访问$_SERVER或其他超级全局变量,但从字符串名称访问。

这个版本的实现正在发挥作用

var_dump(${"_SERVER"}); // working

但当尝试对变量执行此操作时,会收到未找到变量的通知

$var_name = "_SERVER";
var_dump(${$var_name}); // Notice</b>:  Undefined variable: _SERVER in...

只有全局变量才会发生这种情况。

那里发生了什么?有人能解释一下这种情况吗。

变量不能与函数或类方法中的PHP的Superglobal数组一起使用。演示

参考php-doc变量

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

相关内容

  • 没有找到相关文章

最新更新