【发布时间】:2013-08-07 10:14:59
【问题描述】:
是否有可能在运行时评估 PHP 文件的位置?我正在寻找类似于魔术常数__DIR__ 的东西,但在运行时进行评估,作为后期绑定。与self和static类似的区别:
__DIR__ ~ self
??? ~ static
我的目标是在抽象类中定义一个方法,使用 __DIR__ 将分别为每个继承类评估。示例:
abstract class Parent {
protected function getDir() {
// return __DIR__; // does not work
return <<I need this>>; //
}
}
class Heir extends Parent {
public function doSomething() {
$heirDirectory = $this->getDir();
doStuff($heirDirectory);
}
}
显然,只有Parent 和Heir 位于不同目录时才会出现此问题。请考虑到这一点。此外,在各种 Heir 类中一遍又一遍地定义 getDir 似乎不是一个选项,这就是我们有继承的原因......
【问题讨论】:
标签: php inheritance dir late-binding