在PHP中获取函数调用者的__FILE__常量

前端之家收集整理的这篇文章主要介绍了在PHP中获取函数调用者的__FILE__常量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道 PHP中的__FILE__魔术常数将变成当前执行文件的完整路径和文件名.但是有没有办法可以获得与函数调用文件相同的信息?例如:
//foo.PHP:
include "bar.PHP";
call_it();

//bar.PHP
function call_it() {
    echo "Calling file: ".__CALLING_FILE__;
}

这将输出调用文件:… / foo.PHP.

我知道没有__CALLING_FILE__魔术常数,或一个魔术常数来处理这个,但是有没有办法可以得到这些信息?最小的黑客解决方案将是理想的(例如,使用堆栈跟踪将是相当黑客),但最终我只需要它工作.

你应该看看堆栈跟踪做这些事情. PHP有一个名为 debug_backtrace函数
include "bar.PHP";
call_it();

//bar.PHP
function call_it() {
   $bt =  debug_backtrace();

   echo "Calling file: ". $bt[0]['file'] . ' line  '. $bt[0]['line'];
}

希望它有帮助

同样的原则,你可以发现debug_print_backtrace有用,它做同样的事情,但PHP自己处理所有信息的形成和打印.

猜你在找的PHP相关文章