php 反射实例应用-thinkphp 控制器调度
程序员文章站
2022-05-07 22:55:52
...
无详细内容 无 ?phpclass IndexAction{public function index(){echo 'index'."\r\n";}public function test($year=2012,$month=2,$day=21){ echo $year.'--------'.$month.'-----------'.$day."\r\n";}public function _before_index(){echo __FUNCTION__."\
isPublic()){ $class = new ReflectionClass('IndexAction'); //执行前置方法 if($class->hasMethod('_before_index')){ $beforeMethod = $class->getMethod('_before_index'); if($beforeMethod->isPublic()){ $beforeMethod->invoke(new IndexAction); } } $method->invoke(new IndexAction); //执行后置方法 if($class->hasMethod('_after_index')){ $beforeMethod = $class->getMethod('_after_index'); if($beforeMethod->isPublic()){ $beforeMethod->invoke(new IndexAction); } } } //执行带参数的方法 $method = new ReflectionMethod('IndexAction','test'); $params = $method->getParameters(); foreach($params as $param ){ $paramName = $param->getName(); if(isset($_REQUEST[$paramName])) $args[] = $_REQUEST[$paramName]; elseif($param->isDefaultValueAvailable()) $args[] = $param->getDefaultValue(); } if(count($args)==$method->getNumberOfParameters()) $method->invokeArgs(new IndexAction,$args); else echo 'parameters is not match!';
上一篇: ps怎么擦除图片上的字
下一篇: 怎么用ps修改海报上的字