php:получаем имя наследующего класса в статическом методе
-
21-09-2019 - |
Вопрос
Ладно, название поста может немного сбить с толку.
У меня есть этот код:
class A {
public static foo() {
return get_called_class();
}
}
class B extends A {
}
class C {
public function bar() {
echo B::foo();
}
}
Выходной сигнал:C
То, что я хочу получить в foo(), - это имя класса B.Как я могу это сделать без изменений в классе B?
С уважением, Ян Оливер
PS:__ CLASS __, get_class() не работают.
Решение
До PHP 5.3 это было невозможно без взломов и известно как позднее статическое связывание, термин, доступный для поиска в Google.
Если вам интересно, вот статья SO с ответами: Подделка поздней статической привязки перед php 5.3
Другие советы
Я думаю, вы могли бы использовать встроенный Класс отражения за это.
Не связан с StackOverflow