Как получить имя дочернего класса из родительского класса
Я пытаюсь сделать это, не требуя функции в дочернем классе... возможно ли это? У меня такое чувство, что это не так, но я действительно хочу быть уверен...
<?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
?>
6
1 answers
Использовать 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();
13
Author: BoltClock, 2012-03-06 04:42:15