Разрешить имя файла из другого файла - PullRequest
0 голосов
/ 14 октября 2008

В настоящее время я могу следующее:

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__;
  }
}

Я хотел бы сделать что-то похожее с именами файлов (__FILE__, но с динамической оценкой); Я хотел бы знать, в каком файле находится подкласс, из суперкласса. Это возможно любым изящным способом?

Я знаю, что вы могли бы что-то сделать с get_included_files(), но это не очень эффективно, особенно если у меня много примеров.

Ответы [ 2 ]

2 голосов
/ 15 октября 2008

Вы можете использовать Reflection.

$ref = new ReflectionObject($this);
$ref->getFileName(); // return the file where the object's class was declared
0 голосов
/ 14 октября 2008

Э-э, не совсем то, о чем я могу думать. Каждый подкласс должен иметь явно реализованный метод, который возвращает __FILE__, что в первую очередь полностью устраняет точку наследования.

Мне также очень любопытно, почему что-то подобное было бы полезно.

...