我正在寻找get_called_class()
类似的__FILE__
东西......也许像get_included_file()
?
我有一组类想知道它们存在于哪个目录中。像这样:
<?php
class A {
protected $baseDir;
public function __construct() {
$this->baseDir = dirname(__FILE__);
}
public function getBaseDir() {
return $this->baseDir;
}
}
?>
在其他文件中,在其他文件夹中...
<?php
class B extends A {
// ...
}
class C extends B {
// ...
}
$a = new A;
echo $a->getBaseDir();
$b = new B;
echo $b->getBaseDir();
$c = new C;
echo $c->getBaseDir();
// Annnd... all three return the same base directory.
?>
现在,我可以做一些 ghetto 的事情,比如添加$this->baseDir = dirname(__FILE__)
到每个扩展类,但这似乎有点……ghetto。毕竟,我们谈论的是 PHP 5.3,对吧?这不应该是未来吗?
是否有另一种方法来获取声明类的文件的路径?