P粉2918868422023-08-01 00:11:59
debug_backtrace()
提供了调用堆栈,可以追踪你所在的位置,但你已经处于最外层(即全局)作用域,并且没有进行任何调用,所以没有调用堆栈可用。
print_r(debug_backtrace());
产生的结果是:
Array ( )
如果将代码放在一个函数中,你将会得到一个包含一个项的调用堆栈:
function foo() { print_r(debug_backtrace()); } foo();
产生的结果是:
Array ( [0] => Array ( [file] => ... [line] => 6 [function] => foo [args] => Array ( ) ) )
如果你想在全局作用域下获得一些(最小的)调试信息,你可以将所有的代码封装在一个闭包中,然后立即内联调用它:
(function() { // all your code here print_r(debug_backtrace()); })();
结果
Array ( [0] => Array ( [file] => ... [line] => 5 [function] => {closure} [args] => Array ( ) ) )
关于会话/环境数据,只有在将它们作为参数传递时,它们才会显示出来:
foo($_ENV);
结果:
Array ( [0] => Array ( [file] => ... [line] => 6 [function] => foo [args] => Array ( [0] => Array ( [TERM] => xterm [PATH] => /usr/bin:/bin [LANG] => C [SHELL] => /bin/sh [MAIL] => /var/mail/nobody [LOGNAME] => nobody [USER] => nobody [HOME] => /tmp ) ) ) )
如果你想像这样记录会话/环境变量,最好的方法可能是显式地将它们输出:
error_log(print_r($_ENV, true));
error_log(print_r($_SESSION, true));