我正在尝试为函数提供一种方法来了解调用它的文件的路径。假设我在文件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,第二个函数行
答案 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 。