Как получить имя дочернего класса из родительского класса
Я пытаюсь выполнить это, не требуя функции в дочернем классе... возможно ли это? У меня такое чувство, что это не так, но я действительно хочу быть уверенным...
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); // Here comes Late Static Bindings
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test(); //returns B
?>
1 ответ:
Использование
get_called_class()
вместо__CLASS__
. Вы также сможете заменитьstatic
наself
, поскольку функция разрешит класс через позднюю привязку для вас:class A { public static function who() { echo get_called_class(); } public static function test() { self::who(); } } class B extends A {} B::test();