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

时间:2012-11-30 11:28:57

标签: php oop

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

abstract class ROOT{
    public static function getClass(){

    }
}

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

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

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分: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"