好的,这是一个真正的简短查询.
我从函数内部调用__FILE__.
现在,此函数本身位于必需文件中.
现在,当我从Parent文件中调用此函数时,__ FILE__会输出父文件还是包含的文件?
哦,我正在寻找一个我可以确认的来源,如果可能的话,因为我在这里的测试给了我完全荒谬的结果.
此外,如果这应该显示子(包含)文件,我应该怎么做才能显示父文件路径? (某些变化或什么?)
解决方法:
__FILE__始终替换为符号出现的文件名.
要获取调用函数的文件的名称,可以使用debug_backtrace()
.这将返回当前的callstack作为数组,每个子数组包含进行调用的文件,行和功能键.
您可以将最前面的元素从数组中移出以获取调用函数的位置:
a.php只会:
<?php
require_once('b.php');
b();
b.php:
<?php
function b() {
$bt = debug_backtrace();
var_export($bt);
}
输出:
array (
0 => array (
'file' => '/home/meagar/a.php',
'line' => 5,
'function' => 'b',
'args' => array( ),
),
)
同样的事情没有函数调用:
a.php只会:
<?php require_once('b.php');
b.php:
<?php
$bt = debug_backtrace();
var_export($bt);
输出:
array (
0 => array (
'file' => '/home/meagar/a.php',
'line' => 3,
'function' => 'require_once',
),
)