thinkphp框架的控制器模块是如何实现 前控制器、后控制器,及如何执行带参数的方法?
php系统自带的 reflectionclass、reflectionmethod 类,可以反射用户自定义类的中属性,方法的权限和参数等信息,通过这些信息可以准确的控制方法的执行。
reflectionclass: [php手册]详情
主要用的方法:
hasmethod(string) 是否存在某个方法
getmethod(string) 获取方法
reflectionmethod: [php手册]详情
主要方法:
ispublic() 是否为 public 方法
getnumberofparameters() 获取参数个数
getparamters() 获取参数信息
invoke( object $object [, mixed $parameter [, mixed $… ]] ) 执行方法
invokeargs(object obj, array args) 带参数执行方法
实例演示: