从静态函数获取子类名称php

Max*_*ers 2 php oop

在php中我有一个ROOT类,所有其他类都继承该类.

abstract class ROOT{
    public static function getClass(){

    }
}
Run Code Online (Sandbox Code Playgroud)

我希望该函数返回从该类继承的对象的类(名称).因此,如果我创建一个对象Tree(扩展ROOT)并在其上调用getClass,它应该说"Tree"

函数get_class()仅适用于对象,因此不能在静态函数中使用.有没有办法实现这个目标?

SDC*_*SDC 7

而不是get_class(),使用get_called_class().


Cry*_*zon 5

http://www.php.net/manual/en/function.get-called-class.php

abstract class ROOT {
    public static function getClass() {
        return get_called_class();
    }
}
class Tree extends ROOT {
}

$Tree = new Tree();
echo $Tree->getClass();  // Outputs "Tree"
Run Code Online (Sandbox Code Playgroud)