在扩展其他课程后,我遇到了查找课程名称的麻烦。以下是相关课程:
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中的类示例的名称,但是我发现在没有添加额外参数的情况下我们无法做到这一点(我没有想做)。
答案 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
希望这有帮助