是否有可能在PHP脚本中转储所有全局变量? 假设这是我的代码:
<?php
$foo = 1;
$bar = "2";
include("blah.php");
dumpall();
// displays $foo, $bar and all variables created by blah.php
还有,是否可能在PHP脚本中转储所有已定义的常量。
是否有可能在PHP脚本中转储所有全局变量? 假设这是我的代码:
<?php
$foo = 1;
$bar = "2";
include("blah.php");
dumpall();
// displays $foo, $bar and all variables created by blah.php
还有,是否可能在PHP脚本中转储所有已定义的常量。
ksort()
,否则您将会得到许多错误的负面结果。同时,使用HTML的pre
元素进行可视化格式处理也会有所帮助...<?php
$everything = get_defined_vars();
ksort($everything);
?>
编辑:我不得不回来,发现有一个更好的答案, $GLOBALS
。$a = print_r(var_dump($GLOBALS),1);
echo '<pre>';
echo htmlspecialchars($a);
echo '</pre>';
编辑 2:正如mpag提到的那样,如果您正在使用大量软件,则print_r()
可能会耗尽内存。假设没有输出或者它明显被截断并且您可以访问php.ini
文件,则可以像这样调整内存用法:adjust the memory
ini_set('memory_limit', '1024M');
print_r
会耗尽内存,但是使用 json_encode($GLOBALS)
并用 JavaScript 进行 console.log
可以解决。2)不要忘记 $_ 变量(SERVER、SESSION、ENV、FILES、COOKIE、GET、POST、REQUEST)。3)为了进行更深入的调试,我还会执行 get_declared_classes
,然后遍历这些类,使用 get_class_vars
和 get_class_methods
来获取变量和方法。 - mpag$_
变量应该从$GLOBALS
中提取。感谢您的评论,我会尽快查看get_declared_classes
和get_class_vars
。 :-) - John
get_defined_constants
函数获取常量。 - Long Earseval()
内创建的变量也适用吗? - Salman Aeval()
之后调用get_defined_vars()
/get_defined_constants()
,那就可以。 - Lienauecho "<pre>"; print_r(get_defined_vars()); die;
复制你需要的任何部分即可。 - JaseC