加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:32:30 所属栏目:PHP教程 来源:网络整理
导读:我知道 PHP中的__FILE__魔术常数将变成当前执行文件的完整路径和文件名.但是有没有办法可以获得与函数调用文件相同的信息?例如: //foo.php:include "bar.php";call_it();//bar.phpfunction call_it() { echo "Calling file: ".__CALLING_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自己处理所有信息的形成和打印.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读