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 に答える