Я знаю, что вы можете использовать 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
Я думаю, что вы ищете функцию 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
Возможно, лучшее решение могло бы быть предложено, если бы мы знали контекст, в котором вы пытаетесь позвонить?