2015-04-26 3 views
1

У меня есть этот код в PHP:PHP получить текущее имя класса в унаследованном классе

abstract class Development 
{ 
    static function testUnit() 
    { 
     echo get_class(); 
    } 
} 

class Component extends Development 
{  
} 

Но если я звоню Компонент :: testUnit();

Я получаю разработку вместо Компонента. Меня это озадачивает, потому что такая статическая функция не имеет смысла, я думаю.

ответ

2

Как @Jason в FloSports сказал, вы можете использовать get_called_class, с этим есть еще 1 способов, вы можете получить текущее имя с именем класса и то есть echo get_class($this);

Поскольку вы уже используете get_class(), вам просто нужно добавить $ this. Таким образом, он может указывать текущий класс. Вот прилагаемый link, который поможет вам понять между этими двумя функциями. Смотрите, если это поможет.

+0

Большое спасибо вам обоим. Джейсон прав, «get_called_class» была правильной функцией. Но добавление $ this ничего не решает, потому что метод статичен. –

+0

Правда, get_class ($ this) не будет работать на статическом классе –

Смежные вопросы