Heim > php教程 > php手册 > Hauptteil

php 反射实例应用-thinkphp 控制器调度

WBOY
Freigeben: 2016-06-06 19:33:02
Original
828 Leute haben es durchsucht

无详细内容 无 ?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__."\

<?php	
class 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__."\r\n";
	}
	public function _after_index(){
			echo __FUNCTION__."\r\n";
	}
}

//执行index方法
$method = new ReflectionMethod('IndexAction','index');
//进行权限判断
if($method->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!';

Nach dem Login kopieren
php 反射实例应用-thinkphp 控制器调度
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!