Получить имя класса из расширенного класса

Можно ли получить имя класса верхнего уровня из расширенного класса, не устанавливая его из класса верхнего уровня. См. Пример ниже, я хотел бы получить "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 +)

Ответы

Ответ 1

Использование:

get_class($this);

Ответ 2

get_called_class() для статических классов или get_class($this) для экземпляра.

get_called_class(), как сказал Джейсон, был представлен в PHP 5.3

Ответ 3

Вы можете просто использовать:

get_class($this);