Получить имя самой последней декларации класса? - PullRequest
0 голосов
/ 20 сентября 2011

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

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

Я пробовал get_declared_classes(), но массив отсортирован по алфавиту, а не в последовательности, когда классы объявлены.

Вот пример кода того, чего я пытаюсь достичь:

class MyClass{

}

//Repeating code:

if(isset($_REQUEST['fxn'])){

    $class = new MyClass(); //I am hoping to make the class name dynamic, according to the most recent declared class...

    //More repeating codes here...
}

(Это сэкономило бы много времени во время разработки и в будущем, поддерживая, если бы я мог просто использовать include, чтобы добавить этокусок кода, где это необходимо. Отсюда мой вопрос.)

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Возможно, вы могли бы получить последний элемент, возвращаемый get_declared_classes, но что-то кажется ужасно, ужасно неправильным, если вы пытаетесь это сделать. Возможно, вам лучше объяснить свою ситуацию, чтобы узнать о других способах достижения вашей цели.

1 голос
/ 20 сентября 2011

Это может быть не совсем то, что вы ищете, но это работает:

class MyClass {}
$class_name = 'MyClass';

//Repeating code:

if(isset($_REQUEST['fxn'], $class_name)) {
     $class = new $class_name();

    //More repeating codes here...
}

Когда вы определяете класс, который вы хотите использовать, также определяйте переменную с именем класса.

...