扩展后查找类名

时间:2011-07-23 16:40:52

标签: php

在扩展其他课程后,我遇到了查找课程名称的麻烦。以下是相关课程:

class Home extends Controller {
       public function test() {
           Example::all();
       }
}


Class Example extends Active {
    //Variables
}

Class Active extends Database {
     public function all() {
        //This is where I need to store a variable containing the class name Example.
     }
}

我正在尝试从类Home中调用Class Active中的类示例的名称,但是我发现在没有添加额外参数的情况下我们无法做到这一点(我没有想做)。

2 个答案:

答案 0 :(得分:2)

您正在寻找

示例(demo

class Home  {
       public function test() {
           Example::all();
       }
}
Class Example extends Active {
    //Variables
}
Class Active  {
     public static function all() {
        var_dump( get_called_class() );
     }
}

请注意,我已将Active::all的签名更改为static,因为静态调用非静态方法会引发E_STRICT警告。一般来说,您想要avoid static methods and Late Static Binding

答案 1 :(得分:0)

您是否尝试过使用PHP的ReflectionObject类?看看to this method

希望这有帮助