PHP获取调用当前函数的文件名

时间:2014-01-28 15:13:06

标签: php

我正在尝试为函数提供一种方法来了解调用它的文件的路径。假设我在文件123.php中有函数f()。我从文件abc.php调用f()。我希望f()能够弄清楚它是从abc.php和abc.php的路径调用的。

请帮助我,谢谢。

编辑:  我在test.php中有一个函数,可以从ajax调用,比如

function getSomething($params){
    check($params);

    check($params);
}

它执行两次函数check

我在common.php中有另一个名为check()的函数,类似于

function check($params){
  //Here, i want know where the file name and line at which it has been called.
}

编辑: 需要获取已触发功能的行以检查检查功能。

它已经在test.php中执行了两次

首次执行 - >我们需要得到test.php,第一个函数调用行

第二次执行 - >我们需要获得test.php,第二个函数行

4 个答案:

答案 0 :(得分:2)

您需要obtain a backtrace并从结果数组中提取信息。请注意,在PHP / 5.4之前,您无法限制跟踪的深度,因此输出可能相当大。可以将它用于调试目的,但我不会将其用于其他任何目的。

答案 1 :(得分:0)

常量__FILE__包含文件名和完整路径(请参阅http://www.php.net/manual/en/language.constants.predefined.php)。这会更改为包含的库等。

您可能想要的是:

$ _ SERVER [“PHP_SELF”],它反映了当前正在运行的脚本。

答案 2 :(得分:0)

你可以看看debug_backtrace() http://nl3.php.net/debug_backtrace。 此函数返回包含所有文件的数组

答案 3 :(得分:0)

如果要避免可能昂贵的debug_backtrace,则需要在函数签名中添加at参数并传递常量 FILE