CodeIgniter学习笔记(五)——CI超级对象中的uri

uri是CI_Uri类型对象,通过$this->uri获取,用于处理与URL工作,包括从URL中获取参数等

通过URL传递get参数往往使用这种形式:http://localhost/study_codeIgniter/index.php/index/index2?id=5,但在PHP框架中,基本使用pathinfo,形式像这样:协议://域名/控制器/方法名/参数名1/参数值1/参数名2/参数值2,例如这个URI:http://localhost/study_codeIgniter/index.php/index/test/id/5/name/jack

    index.php是入口文件

    index表示index控制器

    test表示控制器中的test方法

    id表示第一个get传递的参数名是id

    5是第一个参数的值

    name表示第二个get传递的参数名是name

    jack是第二个参数的值

如果是其他框架,通过以上的pathinfo,仍可以调用$_GET[‘’]来获取变量,但在CI中不能这样使用,会提示id未定义

image

在CI中,要使用uri对象的segment方法获取参数值,实参是参数值在URL中的序号,入口文件的序号为0

对于上面的URL调用

$this->uri->segment(4)可以获得参数id的值

$this->uri->segment(6)可以获得参数name的值

正因如此,在URL中实际可以不传入参数名而直接传参数值,然后通过segment根据序号获取参数值,比如上面的URL可以修改成这样:http://localhost/study_codeIgniter/index.php/index/test/5/jack,此时,$this->uri->segment(3)的值是5,$this->uri->segment(4)的值是jack,对于省略参数名的URL,有一种更简便的使用方式,这个URL可以解读为调用index控制器的test方法,该方法有两个形参,第一个参数的值是5,第二个参数的值是jack,此时可以直接通过传入的参数来访问

public function test($id, $name)
{
    echo $id . "<br />" . $name;
}

转载于:https://www.cnblogs.com/iamsupercola/p/4629625.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值