php路由原理_PHP中的路由原理, 解析出控制器, 方法和参数(路径参数)

一、认识路由原理:目标:将URL中的控制器,方法解析出来,映射到对应的控制器类和方法上。

代码:<?php

// 路由原理

// 目标:将URL中的控制器,方法解析出来,映射到对应的控制器类和方法上

// 控制器

class UserController

{

// 创建一个方法,写出传入参数

public function getUser($id, $name)

{

return "产品id ==> $id, 产品名称 ==> $name";

}

}

// 1. 解析出PATHINFO 将字符串利用‘/’切割 转为数组

$pathinfo  = array_values(array_filter(explode('/', $_SERVER['PATH_INFO'])));

// print_r($pathinfo);

// 2. 解析控制器

$controller = ucfirst(array_shift($pathinfo)) . 'Controller';

// 3. 解析控制器中的方法

$action = array_shift($pathinfo);

// print_r($pathinfo);

// 4. 解析参数: pathinfo路径变量

// 这里放的是从pathinfo中解析出来的变量组成的数组

$params = [];

for ($i=0; $i

// 检查当前pathinfo变量是否有值?

if (isset($pathinfo[$i+1])){

$params[$pathinfo[$i]] = $pathinfo[$i+1];

}

}

// print_r($params);

// 5. 调用控制器方法

$user = new $controller();

echo $user->$action(...array_values($params));

//http://php.edu/0514/me.php/user/getuser/id/11/name/鲜花

结果输出:

a91821337ea27480316c23b091631b04.png

二、总结:

PHP中的路由目的是用地址调用指定类内的方法并传入参数。在什么场合使用?后期项目中希望能运用到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值