可以从PHP中的未实例化对象获取当前类的名称吗?

And*_*son 5 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
Run Code Online (Sandbox Code Playgroud)

Edd*_*ker 8

如果您希望从静态方法获取类名,我认为您正在寻找get_called_class()函数.

有关更多信息,请参阅get_called_class文档.


And*_*son 3

我发现你可以使用 __CLASS__ 来获取类名。例子:

class ExampleClass
{
    static function getClassName()
    {
        echo __CLASS__;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,__CLASS__ 将返回定义该函数的类。如果你扩展它,你将不会得到子类。 (7认同)