我在扩展其他类后找到类名时遇到了麻烦。下面是相关的类:
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调用时检索类活动中的类示例的名称,但是我发现到目前为止,如果不添加额外的参数(我不想这样做),则不可能做到这一点。
您要找的是
-
get_called_class
-"延迟静态绑定"类名
示例(演示)
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
警告。一般来说,您希望避免使用静态方法和后期静态绑定。
您是否尝试过从PHP的ReflectionObject类?看看这个方法
希望能有所帮助