PHP实现链式操作的核心思想


Posted in PHP onJune 23, 2015

PHP 链式操作的实现

 

 $db->where()->limit()->order();

 

在 Common 下创建 Database.php。

链式操作最核心的地方在于:在方法的最后 return $this;

Database.php:

<?php
namespace Common;

class Database{
  function where($where){
    return $this;  //链式方法最核心的地方在于:在每一个方法之后 return $this
  }
  function order($order){
    return $this;
  }
  function limit($limit){
    return $this;
  }
}

index.php:

<?php
define('BASEDIR',__DIR__); //定义根目录常量
include BASEDIR.'/Common/Loader.php';
spl_autoload_register('\\Common\\Loader::autoload');

$db = new \Common\Database(); 

//传统的操作需要多行代码实现
//$db->where('id = 1');
//$db->where('name = 2');
//$db->order('id desc');
//$db->limit(10);

//使用链式操作,一行代码解决问题
$db->where('id = 1')->where('name = 2')->order('id desc')->limit(10);

在使用链式操作时,ide(netbeans 会给出自动提示):

 PHP实现链式操作的核心思想

PHP 相关文章推荐
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
浅谈PHP Cookie处理函数
Jun 10 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
详细解读php的命名空间(二)
Feb 21 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
PHP魔术方法的使用示例
Jun 23 #PHP
8个PHP数组面试题
Jun 23 #PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 #PHP
php发送邮件的问题详解
Jun 22 #PHP
PHP获取音频文件的相关信息
Jun 22 #PHP
php生成PDF格式文件并且加密
Jun 22 #PHP
用PHP生成excel文件到指定目录
Jun 22 #PHP
You might like
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
php实现的CSS更新类实例
2014/09/22 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
Python入门篇之对象类型
2014/10/17 Python
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python中的ctime()方法使用教程
2015/05/22 Python
Python 加密的实例详解
2017/10/09 Python
python3调用R的示例代码
2018/02/23 Python
python实现AES加密解密
2019/03/28 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
三星英国官网:Samsung英国
2018/09/25 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
钳工实训报告总结
2014/11/04 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
车位出租协议书范本
2016/03/19 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python