use*_*729 3 php debug-backtrace
它的功能非常强大,我担心它的稳定性和性能.
你怎么看?
UPDATE
我正在做的是这样的:
$old_dir = getcwd();
chdir( dirname($included_file) );
include ( $included_file );
chdir( $old_dir );
Run Code Online (Sandbox Code Playgroud)
基本上它只是这样include ( $included_file );,但在内部$included_file它找不到3.php与它本身位于同一目录中,所以我手动设置cwd并且它工作.但是如果我找到它无法找到的原因会很好至于为什么debug_backtrace需要,因为3.php它被另一个包含func,因为相对路径不起作用,它必须debug_backtrace用来获取包含文件路径,最后使用如下所述的绝对路径.
重现并不容易,因为上面的代码是在一个方法的上下文中,而且还有更多......如果没有其他人遇到过这种问题我想停在这里,无论如何,成本只是额外的3线,没什么大不了的.
debug_backtrace 在我的经验中相对昂贵,所以你应该小心它不会在循环中使用(例如,在捕获警告或通知并每次执行回溯的自定义错误处理程序中).
对于任何类型的错误记录,我认为它非常宝贵,因为它只会被调用一次,绝对不是性能问题.在错误报告中包含回溯肯定总是好的.
我不明白为什么这个函数的稳定性会有任何特定问题(即调用它导致另一次崩溃),我从来没有听说过任何问题.当我使用对象作为没有定义方法的函数参数时,我可以看到的唯一"问题"是用户贡献注释中的这个注释_toString.
当然,你永远不应该向最终用户输出回溯的结果 - 这是不言而喻的.