php反射机制:根据类名或类的对象获取类的信息,包括类中的属性,方法,方法权限,注释等
应用场景:
- 生成类文档
- 实现 MVC 架构
// 实现mvc
// 方法一:
// 根据路由信息定位控制器($controller) 和方法($method),使用反射实现自动调用
$class = new ReflectionClass(ucfirst($controller) . 'Controller');
$controller = $class->newInstance();
if ($class->hasMethod($method)) {
$method = $class->getMethod($method);
$method->invokeArgs($controller, $arguments);
} else {
throw new Exception("{$controller} controller method {$method} not exists!");
}
// 方法二:不过不用反射貌似也行,呵呵~
$controller = ucfirst($controller) . 'Controller';
$o = new $controller();
call_user_func_array(array($o, $method), $arguments);