包含文件的__FILE__的PHP输出

好的,这是一个真正的简短查询.
我从函数内部调用__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',
  ),
)
上一篇:php – libxml常量是可访问的,但不注册为定义的常量


下一篇:PHP:带未定义常量的switch语句