是否有可能在php中获得调用方上下文的魔术常数?

c10*_*b10 3 php constants

我想创建一个调试函数,该函数转储有关执行上下文的信息以及其他一些信息。

在debug.php中,我有一个函数可以转储作为参数传递的所有内容。我对从例如example.php调用转储函数的方法感兴趣,并希望它返回调用上下文的文件名,行号和函数名。

1. <?php
2. function my_function(){
3.   $var = 'My example';
4.   dump( $var );
5. }
6. ?>
Run Code Online (Sandbox Code Playgroud)

example.php

我希望上面的函数输出:“ example.php,my_function,4:我的示例”。

反正有这样做的(通过短__FILE____FUNCTION____LINE__)作为参数?

Mad*_*iha 5

是的,您可以使用debug_backtrace()

它以相反的顺序(最后一个最高祖先)返回所有调用者和文件的数组(也跟踪包含的文件)。因此,调用方将是数组中的第一个:

$caller_info = next(debug_backtrace());
Run Code Online (Sandbox Code Playgroud)