时间:2021-07-01 10:21:17 帮助过:17人阅读
  一个例子  
  
class test{	public function t1(){		return 'function t1';	}	}$controller = 'test';//控制器,$_GET 获取$action = 't1';//方法,$_GET 获取$class = new test();$ref1 = new ReflectionMethod($class,$action);echo $ref1->invoke($class);  不用反射,php 原生代码更直观
class test{    public function t1(){        return 'function t1';    }} $controller = 'test';//控制器,$_GET 获取$action = 't1';//方法,$_GET 获取 $class = new $controller;echo $class->$action();    我明白楼上两位的意思了,原来我没有考虑到new这个行为。  
那么做为框架,比如thinkphp,地址栏通过获取全局变量的函数很容易找到所要的类,进而进入这个类,那么 问题来了,这个new是怎么做的呢,因为没有new就不可能调用类里的方法,还请二位指点一下 
  你知道了类名,就   new 类名 不就行了?  
只不过类名是在变量中的,那也只要   new $保存有类名的变量  
  
MVC 并不一定要面向对象  
  
$controller = 'test';//控制器,$_GET 获取$action = 't1';//方法,$_GET 获取include $controller . '.php';echo $action();一样是可以的
  框架有个index.php的,就是在那里处理new哪个类的  
  
$controller = 'test';  
$action = 'a1';  
include $controller.'.php';  
echo $action();