【问题标题】:Getting the filename of where a function was called from获取函数调用位置的文件名
【发布时间】:2013-07-17 22:52:42
【问题描述】:

是否有可能(以有效的方式)检索在另一个(包含的)文件中调用函数的上一个命令的文件名(如果可能,还包括行)?

例如:

Foo.php

function foo() {
    bar();
}

Bar.php

function bar() {
    // some stuff that will show when the above is executed:
    // Foo.php, line 2 (last bit if possible)
}

【问题讨论】:

  • 我只知道__LINE____FILE__ :(

标签: php filepath


【解决方案1】:

这是debug_backtrace()的工作:

function test($param)
{
    echo "$param";
    var_dump(debug_backtrace());
}

【讨论】:

  • 啊,完美,不知道这个真棒功能!表现如何?
  • @cgoddard 是的,这很好:) 从来没有考虑过性能,因为我只将它用于调试。如果您使用 xdebug 分析它会怎样?想知道你的结果..
  • @hek2mgl 不应该想象如果将限制设置为 1 会太大,但我会尽快通知您
  • @Akam PHP 是 deep.. 即使经过多年的开发,您也会发现您从未想象过的新功能。 :) 我喜欢这个..
  • @Akam 我完全同意你的看法,我很高兴你发现它和我一样有用。如果您有兴趣,我将它用作 SPL 自动加载功能的一部分,该功能将加载所请求的内容,按调用者“包”的优先级排序以提高性能。已经获得了大约 30 毫秒的 120 毫秒(原始性能时间)提升:D
猜你喜欢
  • 1970-01-01
  • 2022-12-06
  • 2016-04-07
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 2010-11-03
相关资源
最近更新 更多