Ist es irgendwie möglich, den Speicherort der PHP-Datei zu erhalten, ausgewertet zur Laufzeit? Ich suche etwas ähnlich wie die magische Konstante __DIR__
, aber zur Laufzeit als späte Bindung ausgewertet. Ähnliche Differenz mit self
und static
:PHP __DIR__ bewertete Laufzeit (späte Bindung)?
__DIR__ ~ self
??? ~ static
Mein Ziel, ein Verfahren in einer abstrakten Klasse wird definiert, mit __DIR__
, die jeweils für jeden Erben Klasse bewertet werden würden. Beispiel:
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);
}
}
Offensichtlich ist dieses Problem tritt nur auf, wenn Parent
und Heir
sind in verschiedenen Verzeichnissen. Bitte berücksichtigen Sie dies. Auch dann, wenn getDir
immer und immer wieder in verschiedenen Heir Klassen definiert, nicht zu sein, und Option scheint, das ist, warum wir ihr Erbe ...
Das ist cool ... Sonst noch was, Leute? Je sauberer das Design, desto besser. –
Sie können ReflectionObject auch verwenden: 'return dirname (new \ ReflectionObject ($ this)) -> getFileName());' –