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

Trying to access $_SERVER(or any global) variable from string name [duplicate]

提问人:Aaron Yordanyan 提问时间:11/13/2019 最后编辑:CommunityAaron Yordanyan 更新时间:11/13/2019 访问量:564

问:

今天我遇到了如此可怕的情况。 似乎这个错误与 有关。PHP

我正在尝试访问另一个超级全局变量,但来自字符串名称。$_SERVER

此版本的实现正在工作。

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

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

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

这只会发生在全局变量上。

这是怎么回事?有人可以解释一下这种情况吗?

php 全局 变量

评论

0赞 PHP Ninja 11/13/2019
你有没有寻找灵魂。正如我所看到的,它正在工作
0赞 Nick 11/13/2019
对我有用:3v4l.org/LPTSv
0赞 Jim Panse 11/13/2019
也对我有用
0赞 LF00 11/13/2019
它对我不起作用。它在使用时输出,但在使用时输出会话的所有内容nullvar_dump(${$var_name})var_dump($_SERSION)
0赞 Markus Zeller 11/13/2019
为什么这么复杂?只需使用 .$_SERVER[$key]

答:

4赞 LF00 11/13/2019 #1

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

参考 php 文档变量变量

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