codeigniter框架中$db->where()链式原理分析

公司最常用的框架是codeigniter,里面会经常使用

$db->select()->from()->where()

这样的语句,有些新手朋友就会觉得奇怪,这是怎么实现的????

其实原理比较简单,做个例子给大家看看就明白了

class demo{
 public $sql = "";
 function select($str)
 {
  $this->sql .= $str;
  return $this;
 }
 function from($str)
 {
  $this->sql .= $str;
  return $this;
 }
 function where($str)
 {
  $this->sql .= $str;
  return $this;
 }
 function query()
 {
  execute....
  return array
 }
}

其实关键的就是,链式函数每次返回的都是对象自己的引用,然后接着再调用自己的函数!!直到最后query函数终结!

时间: 2025-01-21 12:51:26

codeigniter框架中$db->where()链式原理分析的相关文章

ThinkPHP各种框架里面SQL操作链式写法原理

链式操作,很多人看起来很神秘,其实你读完这篇文章后,你就能逐渐的理解链式操作.我们深入了ThinkPHP的内核,我们去研究ThinkPHP和其他框架的链式操作.只要你会了一种,其他的就一通则百通了. ThinkPHP,具有非常强大的社区,暴力实用详细的中文手册.有一个地方相信大家都不陌生,就是他的链式写法,链式写法的一定程度上简化了SQL工作量.OK,是怎么实现的,那我们从面向对象入手,分析链式写法的实现原理. 如下语句 $User->limit(10)->where('status=1')-

CodeIgniter框架中

 这篇文章主要介绍了CodeIgniter中的_remap()使用方法2例,需要的朋友可以参考下 一.CodeIgniter手册相关介绍 URI 的第二片段决定会调用控制器中的哪个方法.CodeIgniter 允许你使用 _remap() 方法来废除这种规则:  代码如下:public function _remap()   {       // Some code here...   } 注意:如果你的控制器中包含一个名为 _remap() 的方法,那么不管你的 URI 中包含什么,它总会被忽

asp.net中利用ashx实现图片防盗链的原理分析_实用技巧

 直接分析盗链原理:看下面用httpwatch截获的http发送的数据 GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: http://www.jb51.net/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NE

PHP实现链式操作的原理详解_php实例

在一个类中有多个方法,当你实例化这个类,并调用方法时只能一个一个调用,类似: db.php <?php class db { public function where() { //code here } public function order() { //code here } public function limit() { //code here } } index.php <?php $db = new db(); $db->where(); $db->order()

PHP实现链式操作的原理详解

在一个类中有多个方法,当你实例化这个类,并调用方法时只能一个一个调用,类似: db.php <?php class db { public function where() { //code here } public function order() { //code here } public function limit() { //code here } } index.php <?php $db = new db(); $db->where(); $db->order()

PHP CodeIgniter框架的工作原理研究

 这篇文章主要介绍了PHP CodeIgniter框架的工作原理研究,本文首先分析了它的工作流程,然后总结了它的工作原理,需要的朋友可以参考下     CodeIgniter(以下简称CI,官网以及中国站)是一个流行的PHP框架,小巧但功能强大,简洁轻量同时拥有很好的扩展性,在国内也比较受欢迎.另一方面,CI却没有与时俱进,并不支持PHP5.3之后的一些特性,导致它相对更适合较老一些的项目.虽然如此,CI仍是一个优秀的框架,而且它本身内核较小,源码优雅,适于学习. CI易于使用,可以方便的开发出

PHP CodeIgniter框架的工作原理研究_php技巧

CodeIgniter(以下简称CI,官网以及中国站)是一个流行的PHP框架,小巧但功能强大,简洁轻量同时拥有很好的扩展性,在国内也比较受欢迎.另一方面,CI却没有与时俱进,并不支持PHP5.3之后的一些特性,导致它相对更适合较老一些的项目.虽然如此,CI仍是一个优秀的框架,而且它本身内核较小,源码优雅,适于学习. CI易于使用,可以方便的开发出web应用.先来看一下CI的工作流程图(此处内容引用自http://codeigniter.org.cn/user_guide/overview/app

PHP对象链式操作实现原理分析_php技巧

本文实例讲述了PHP对象链式操作实现原理.分享给大家供大家参考,具体如下: 什么是链式操作呢?使用jQuery的同学印象应该会很深刻.在jQuery中,我们经常会这样的来操作DOM元素: $("p").css("color").addClass("selected"); 连贯操作看起来的确很酷,也非常的方便代码的阅读.那么在PHP里面是否可以实现呢?答案是肯定的,当然了必须是在OOP中用才行,在过程化的程序中,就没有必要用这种方法了. 在PHP中

MySQL链式复制加速神器: MaxScale Binlog Server(附视频)

本文根据DBAplus社群第83期线上分享整理而成   讲师介绍贺春旸 普惠金融MySQL专家   <MySQL管理之道>第一版.第二版作者,曾任职于中国移动飞信.机锋安卓市场,拥有丰富的数据库管理经验. 目前致力于MySQL.Linux等开源技术的研究.   感谢大家参与我今天的分享,希望今天大家能有所收获,并能把这项新技术玩起来先.在介绍MaxScale Binlog Server前,我先把我们这边的情况大致阐述下.   公司核心数据库在我15年7月入职第二周,从最原始的MySQL5.5.