包含文件中 __FILE__ 的 PHP 输出

标签 php constants

好的,这是一个真正的简短查询。 我从函数内部调用 __FILE__。 现在,这个函数本身在一个必需的文件中。

现在,当我从父文件内部调用此函数时,__FILE__ 会输出父文件还是包含的文件?

哦,如果可能的话,我正在寻找可以确认的来源,因为我在这里的测试给出了完全荒谬的结果。

此外,如果这应该显示子(包含的)文件,我应该如何处理才能显示父文件路径? (一些变化还是什么?)

最佳答案

__FILE__ 始终替换为出现该符号的文件名。

要获取调用函数的文件名,可以使用debug_backtrace()。 .这会将当前调用堆栈作为一个数组返回,每个子数组都包含从中进行调用的文件、行和函数键。

您可以将最前面的元素移出数组以获取调用函数的位置:

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',
  ),
)

关于包含文件中 __FILE__ 的 PHP 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954391/

相关文章:

c++ - 如何让 apply-visitor 不丢弃 const 限定符?

c++ - 获取本地对象的常量引用

php - 如何使用ffmpeg php检查视频是横向还是纵向?

php - PDO:FetchAll 返回空数组

c++ - 我应该使用基类还是子类来访问基类中定义的枚举值/常量?

c - 如何消除将多维数组作为常量多维数组传递的警告?

php - 在 PDO 连接字符串中使用常量并使用 PDO 连接调用函数

PHP 在 MS WORD 中读写

php - WAMP 和 XAMPP 给出内部服务器错误

php - 从php更新mysql数据库中的多条记录