2

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

abstract class ROOT{
    public static function getClass(){

    }
}

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

函数 get_class() 仅适用于对象,因此不能在静态函数中使用。有没有办法做到这一点?

4

2 回答 2

7

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

于 2012-11-30T11:34:50.420 回答
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"
于 2012-11-30T11:35:12.243 回答