有没有办法在回溯中查看每个堆栈帧中设置的变量?我可以通过组合来非常接近debug_backtrace(true)
来获取对象,get_object_vars
在每个对象上获取 $this vars,args
每个回溯帧中的键,以及get_defined_vars
获取全局变量,但是在函数中设置的任何临时变量我找不到检索的方法。
这是一个示例情况:
function method1($foo) {
$temp = method2($foo + 1);
foreach ($temp as $t) {
method2($t);
}
}
function method2($bar) {
$temp2 = $bar->value + $_GET['val'];
debug();
}
function debug() {
// to be created
$global_scope = get_defined_vars();
$bt = debug_backtrace(true);
}
I can get $foo
and $bar
通过args
key 在回溯中,对象变量$bar
通过get_object_vars
,以及全局变量get_defined_vars
. I want得到的值$temp2
and $temp
以及。
在您的(本地)服务器上安装并启用 XDebug。然后使用xdebug_get_declared_vars() http://xdebug.org/docs/all_functions#xdebug_get_declared_vars。确保您设置了xdebug.collect_vars
在 xdebug 中打开.ini
file.
Example:
<?php
class strings {
static function fix_strings($a, $b) {
foreach ($b as $item) {
}
var_dump(xdebug_get_declared_vars());
}
}
strings::fix_strings(array(1,2,3), array(4,5,6));
?>
Returns:
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'item' (length=4)
Example from xdebug.org http://xdebug.org/docs/all_functions#xdebug_get_declared_vars
请注意,该函数仅返回该函数所在范围内的变量xdebug_get_declared_vars()
被叫进来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)