PHP __FILE__ 继承

标签 php inheritance

我正在尝试编写一种可以在使用文件完整路径的扩展类中使用的方法。但是,当我使用 __FILE__ 时,我只会返回定义继承方法的类的路径。这是一个示例:

foo.php

class foo 
{

    public function getFullFile()
    {
        return __FILE__;
    }
}

酒吧.php

class bar extends foo 
{
    public function getFile()
    {
        return __FILE__;
    }

}

例子.php

$foo = new foo();
echo $foo->getFullFile() . PHP_EOL;

$bar = new bar();
echo $bar->getFullFile() . PHP_EOL;
echo $bar->getFile() . PHP_EOL;

运行example.php的输出:

/my/full/path/foo.php
/my/full/path/foo.php
/my/full/path/bar.php

这是预期的行为吗?有没有更好的方法来完成这个?我在做一些愚蠢的事情吗?

最佳答案

您不能引用 __FILE__(对于 said reasons ),但您可以引用当前对象类定义的文件:

class foo 
{
    public function getFullFile()
    {
        $c = new ReflectionClass($this);
        return $c->getFileName();
    }
}

关于PHP __FILE__ 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6985774/

相关文章:

python - module.__init__() takes at most 2 arguments 错误在Python

php - htaccess 拒绝所有人的安全性如何

php - 为 Apache 设置 Windows 身份验证

PHP array_unique 没有索引

Java继承问题

c++ - 虚拟析构函数是继承的吗?

php - 无法更改 Magento 安装上的区域设置

php - 为大量数据搜索 FAST 和 THREADSAFE 数据库

java - 如何使用继承的方法在继承层次结构的每个级别显示 SimpleClassName?

css - 我该如何解决这个 CSS 链接继承问题?