Correction status:qualified
Teacher's comments:路由可以写得很简单, 也可以写得很复杂, 但是路由的基本思想一定要搞明白, 这样不管是前端框架的路由, 还是php后端路由都能整明白
<?php namespace zuoye; /* 写一个简单的路由, 将URL地址直接路由一个函数上(注意不是类方法), 这个函数可以用闭包来实现, 大家想一下应该如何做? 为了简化代码, 大家可以暂时不考虑路由中的参数 * */ //请求url:http://php.io/0807/zuoye/route.php/Home/set/id/100/name/shazi $uri = explode('/', $_SERVER['REQUEST_URI']); echo '<pre>' . print_r($uri, true); //从第下标为4的地方开始抓控制器,5为方法 $request['controller'] = $uri[4]."Controller"; $request['action'] = $uri[5]; //从6开始的下标是参数 $params = array_slice($uri,6); $request['action']=function (...$arr) use( $request ){ $a = []; for($i=0;$i<count($arr);$i=$i+2){ if(isset($arr[$i+1])){ $a[$arr[$i]]=$arr[$i+1]; } } return '方法名:'.$request['action'].' ,参数: '. '<pre>' . print_r($a, true); }; echo call_user_func_array($request['action'],$params);
点击 "运行实例" 按钮查看在线实例