Получить имя класса из расширенного класса - PullRequest
14 голосов
/ 01 августа 2009

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

Ответы [ 3 ]

30 голосов
/ 01 августа 2009

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

get_class($this);
30 голосов
/ 01 августа 2009

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

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

5 голосов
/ 01 августа 2009

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

get_class($this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...