Можно ли получить имя текущего класса от неинсталлированного объекта в PHP?

Я знаю, что вы можете использовать get_class ($ this) нормально, но мне нужно получить имя класса в статической функции, где объект не был создан.

См. Следующий код:

class ExampleClass { static function getClassName() { echo get_class($this); // doesn't work unless the object is instantiated. } } $test1 = new ExampleClass(); $test1->getClassName(); // works ExampleClass::getClassName(); // doesn't work 

Solutions Collecting From Web of "Можно ли получить имя текущего класса от неинсталлированного объекта в PHP?"

Я думаю, что вы ищете функцию get_called_class (), если хотите получить имя класса из статического метода.

См. Документацию get_called_class для получения дополнительной информации.

Я понял, вы можете использовать __CLASS__ для получения имени класса. Пример:

 class ExampleClass { static function getClassName() { echo __CLASS__; } } 

Мой вопрос: как вы управляете вызовом статической функции, не зная имя класса в первую очередь?

Единственное, что я могу придумать, это:

 ExampleClass::getClassName(); //Hard Coded - the class name is hard and visible $class = "ExampleClass"; $class::getClassName(); //Soft Coded - the class name is the value of $class 

Возможно, лучшее решение могло бы быть предложено, если бы мы знали контекст, в котором вы пытаетесь позвонить?