Можно ли получить имя класса верхнего уровня из расширенного класса, не устанавливая его из класса верхнего уровня. См. Пример ниже, я хотел бы получить «Foo» от Base. Я знаю, что могу установить переменную из Foo, но надеясь пропустить дополнительный шаг.
Благодарю.
class Base { function __construct() { echo '<p>get_class: '.get_class().'</p>'; echo '<p>__CLASS__: '.__CLASS__.'</p>'; } } class Foo extends Base { } $test = new Foo();
(PHP 5.2.4+)
Использование:
get_class($this);
get_called_class()
для статических классов или get_class($this)
для экземпляра.
get_called_class()
, как сказал Джейсон, был представлен в PHP 5.3
Вы можете просто использовать:
get_class($this);