Frage

Ich kann derzeit auf die folgende:

class SubClass extends SuperClass {
  function __construct() {
    parent::__construct();
  }
}

class SuperClass {
  function __construct() {
    // this echoes "I'm SubClass and I'm extending SuperClass"
    echo 'I\'m '.get_class($this).' and I\'m extending '.__CLASS__;
  }
}

Ich möchte etwas ähnliches mit den Dateinamen tun (__FILE__, aber dynamisch ausgewertet); Ich möchte wissen, was die Unterklasse-Datei befindet sich in, von der Superklasse. Ist es möglich, in irgendeiner Art und Weise elegant?

Ich weiß, dass Sie etwas tun könnten mit get_included_files() , aber das ist nicht sehr effizient, vor allem, wenn ich zahlreiche Beispiele.

War es hilfreich?

Lösung

Sie können Reflexion verwendet werden.

$ref = new ReflectionObject($this);
$ref->getFileName(); // return the file where the object's class was declared

Andere Tipps

Uh, nicht wirklich, dass ich mir vorstellen kann. Jede Unterklasse müßte ein explizit implementiertes Verfahren haben, das __FILE__ zurückgegeben, die vollständig besiegt den Punkt der Vererbung an erster Stelle.

Ich bin auch wirklich neugierig, warum so etwas wie dies nützlich wäre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top