获取PHP中所有全局变量的名称列表


Get a list of names of all global variables in PHP

我正在使用Moodle,有很多全局变量,而且似乎没有合适的文档。首先我想"是的,看看echo "<pre>",print_r($GLOBALS,1),"</pre>";会产生什么"。但当我尝试它时,我的浏览器在渲染时变得没有响应,渲染结果一团糟。不幸的是,我不可能使用调试器,因为xdebug包不适用于我正在使用的发行版。(交钥匙Moodle设备)

所以我的问题是:有没有办法只看到所有全局变量的名称,这样我就可以单独检查它们?

最简单的答案-打开lib/setup.php,向下滚动到大约第418行,它们都在那里定义。

当你在做这件事的时候,Moosh还可以生成一个文件,允许自动完成Moodle网站中的所有$CFG->变量(不是直接回答问题,而是密切相关的)。

可能是array_keys($GLOBALS)&

正如您所指出的,$GLOBALS实际上是查看所有全局变量的方法。

脚本正在消亡的原因是您有大量的变量,并且每个变量都可能有许多子对象(甚至可能是递归的)。

如果您只想要一个变量的名称的列表,只需执行var_dump(array_keys($GLOBALS))即可。

使用get_defined_vars()获取该范围内的所有变量,这些变量可以在所有脚本或特定函数中。

echo '<pre>';
print_r(get_defined_vars());