CI中的超级对象

Posted private袜子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CI中的超级对象相关的知识,希望对你有一定的参考价值。

  CI中的超级对象就是当前控制器对象,它提供了很多属性,可以通过var_dump($this)打印所有的超级对象;

    load可以理解为一个加载器,加载了很多功能,可以理解为当你使用 $this -> load 之后CI自动帮你new了一个loader类的对象实例,然后你就可以调用load里面封装的各种方法(函数),具体的函数可以在CI文件目录下的system/core/Loader.php文件中查看;

    $this -> load -> 

       view()       //装载视图;

       vars()      //分配变量到视图;

       database()    //装载数据库操作对象;

       model()     //装载模型;

 

    uri也是CI提供的一个类文件,里面封装了一些关于URL相关一些解析的函数,具体的函数可以在CI文件目录下的system/core/URI.php文件中查看

    $this -> uri ->

      segment()      //用于获取url上某一段的参数;CI中的传递参数并非传统的pathinfo模式,该函数获取URL中的某一段上的数据;如下图所示,当你需要获取182时则$this->uri->segment(3);就可以获取到182这个值,以此类推只需要更改segment里面的参数就可以获取到相应段的值;

      通常情况下一般为:入口文件.php/控制器/方法/a参数/b参数/c参数

      

    input输入类,里面封装了一些输入类函数,具体的函数可以在CI文件目录下的system/core/Input.php文件中查看

    $this -> input ->

      post()      等价于原生PHP中的 $_POST[ \'  \' ] ;

      server      等价于原生PHP中的 $_SERVER[ \' \' ] ;

    在CI中直接使用$_POST也是可以直接接收到客户端提交的参数,但ci提供的input类会有一些简单的安全处理机制;

  在view视图里可以直接使用$this访问超级对象;

 

以上是关于CI中的超级对象的主要内容,如果未能解决你的问题,请参考以下文章

CI-CodeIgniter中“超级对象”:$CI =& get_instance()

无法使用pthreads访问线程类中的CI对象

何时在面向对象的 php 中的超级全局变量中使用“@”? [复制]

带有 PostgreSQL 的 CI/CD 管道因“数据库未初始化且未指定超级用户密码”错误而失败

将值从模型传递到 CI 中的视图

开放策略代理 - CI 管道中的显式逻辑与