列出所有PHP变量

Sal*_*n A 50 php variables global-variables

是否可以在PHP脚本中转储所有全局变量?说这是我的代码:

<?php
$foo = 1;
$bar = "2";
include("blah.php");
dumpall();
// displays $foo, $bar and all variables created by blah.php
Run Code Online (Sandbox Code Playgroud)

此外,是否可以在PHP脚本中转储所有已定义的常量.

nic*_*ico 91

使用get_defined_vars和/或get_defined_constants

$arr = get_defined_vars();
print_r($arr);
Run Code Online (Sandbox Code Playgroud)

  • 和常量的`get_defined_constants` (8认同)
  • @Salman只要在`eval()`之后调用`get_defined_vars()`/`get_defined_constants()`,就可以了. (3认同)
  • 只是为那些复制/粘贴的人而想要一行`echo"<pre>"; 的print_r(get_defined_vars()); 死了;`复制你想要的任何东西. (2认同)

Joh*_*ohn 13

当调试尝试使用WinMerge(免费软件)等程序找到差异时,看看各种数组和变量有什​​么不同,ksort()否则你会得到很多误报.它还有助于使用HTML pre元素进行可视化格式化...

<?php
$everything = get_defined_vars();
ksort($everything);

?>
Run Code Online (Sandbox Code Playgroud)

编辑:不得不回到这一点,并意识到我有一个更好的答案,$GLOBALS.

$a = print_r(var_dump($GLOBALS),1);
echo '<pre>';
echo htmlspecialchars($a);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)

编辑2:print_r()如果你正在使用的软件使用很多,那么提到的mpag 可能会因内存不足而受损.假设没有输出或它被明显截断并且您可以访问该php.ini文件,您可以调整内存使用,如下所示:

ini_set('memory_limit', '1024M');
Run Code Online (Sandbox Code Playgroud)