时间: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();