我試圖獲取從超類繼承的PHP類的絕對路徑名。它看起來應該很簡單。我想下面的代碼解釋了它儘量簡潔:在PHP中獲取繼承類的路徑名
// myapp/classes/foo/bar/AbstractFoo.php
class AbstractFoo {
public function getAbsolutePathname() {
// this always returns the pathname of AbstractFoo.php
return __FILE__;
}
}
// myapp/classes/Foo.php
class Foo extends AbstractFoo {
public function test() {
// this returns the pathname of AbstractFoo.php, when what I
// want is the pathname of Foo.php - WITHOUT having to override
// getAbsolutePathname()
return $this->getAbsolutePathname();
}
}
的原因,我不希望覆蓋getAbsolutePathname()
是,有將是一個很大的類,在擴展AbstractFoo,在潛在的許多不同的地方文件系統(Foo實際上是一個模塊),它看起來像是違反了DRY。
除了它不工作的原因('__FILE__'是在編譯時確定的),你需要的確切原因是什麼文件名?恕我直言,這是內部人員從來不需要的內容之一,但我可能忽視了合法使用。 – Wrikken 2010-10-27 16:46:03
[查找PHP文件(在運行時)類定義]的可能的重複(http://stackoverflow.com/questions/2420066/finding-the-php-file-at-run-time-where-a -class-was-defined) – Gordon 2010-10-27 18:40:39