博客列表 >8.7【路由的简单用法】

8.7【路由的简单用法】

小陈先生的博客
小陈先生的博客原创
2019年08月09日 16:56:43655浏览

实例

<?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);

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议