CodeIgniter连贯操作的底层原理分析

5年以前  |  阅读数:1159 次  |  编程语言:PHP 

本文分析了CodeIgniter连贯操作的底层原理。分享给大家供大家参考,具体如下:

php oop连贯操作原理

->符号其实是传递对象指针的。或许这么说是不对的。

但是,我们可以这么的理解。

不多说。放代码。

普通用法:


    <?php
    class test
    {
     public $a='';
     public $b='';
     public function actiona() {
      $this->a="hello";
      return $this;
     }
     public function actionb() {
      $this->b="world";
      return $this;
     }
     public function actionc() {
      echo $this->a." ".$this->b;
     }
    }
    $oktest=new test();
    $oktest->actiona();
    $oktest->actionb();
    $oktest->actionc();
    ?>

连贯用法:


    <?php
    class test
    {
     public $a='';
     public $b='';
     public function actiona() {
      $this->a="hello";
      return $this;
     }
     public function actionb() {
      $this->b="world";
      return $this;
     }
     public function actionc() {
      echo $this->a." ".$this->b;
     }
    }
    $oktest=new test();
    $oktest->actiona()->actionb()->actionc();
    ?>

看到了没有。

连起来了。可以把操作串起来。

看起来直观多了。阅读代码时也轻松了很多。

类里面操作都返回了一个指针。

$this.

他等价于你初始化的那个对象 $oktest

所以下面的操作可以连续起来。

试着去掉每个操作里的


    return $this

你将会看到错误提示。

例子:


    <?php
    class sql{
     public $select;
     public $from;
     public $where;
     public $order;
     public $limit;
     public function from($_from='FROM test') {
     $this->from=$_from;
     return $this;
     }
     public function where($_where='WHERE 1=1') {
     $this->where=$_where;
     return $this;
     }
     public function order($_order='ORDER BY id DESC') {
     $this->order=$_order;
     return $this;
     }
     public function limit($_limit='LIMIT 0,30') {
     $this->limit=$_limit;
     return $this;
     }
     public function select($_select='SELECT *') {
     $this->select=$_select;
     return $this->select." ".$this->from." ".$this->where." ".$this->order." ".$this->limit;
     }
    }
    $sql =new sql();
    echo $sql->from()->where()->order()->limit()->select();
    ?>

更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
将二进制数据转为16进制以便显示
获取IMSI
获取IMEI
Java生成UUID
PHP自定义函数获取搜索引擎来源关键字的方法
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php+ajax+json 详解及实例代码
Yii2汉字转拼音类的实例代码
php封装的page分页类完整实例
php数组合并array_merge()函数使用注意事项
PHP实现简单爬虫的方法
PHP设计模式之工厂模式与单例模式
php实现数组中索引关联数据转换成json对象的方法
wget使用技巧