путь детей - PullRequest
       1

путь детей

0 голосов
/ 27 января 2011

class a1 extends class b{} class a2 extends class b{} class a3 extends class b{} class a4 extends class b{} class a5 extends class b{}

Мне нужно $ this-> filePath в каждом a1-a5, который указывает на местоположение его файла, но когда я устанавливаю $ this-> filePath = __FILE__ в parent, в дочерних-> filePath указывает на родительское местоположение

1 Ответ

1 голос
/ 27 января 2011

Нет способа сделать это глобально в конструкторе b из-за природы __FILE__ - он не ведет себя как функция, но является магической константой, которая обрабатывается (и заменяется ее фактическим значением). ) когда файл интерпретируется.

Вам придется делать это для каждого ребенка отдельно. Это работает в PHP 5:

class a1 extends b{ private $path = __FILE__;}
class a2 extends b{ private $path = __FILE__;}
class a3 extends b{ private $path = __FILE__;}
class a4 extends b{ private $path = __FILE__;}
class a5 extends b{ private $path = __FILE__;}

Единственный способ, которым я знаю, чтобы сделать это в родителе, это использовать debug_backtrace(), и это не очень хорошая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...