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中的正规表达式(二)
Oct 09 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
PHP多线程类及用法实例
Dec 03 PHP
分享自定义的几个PHP功能函数
Apr 15 PHP
php 数组随机取值的简单实例
May 23 PHP
php集成动态口令认证
Jul 21 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
php实现微信发红包功能
Jul 13 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 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
function.inc.php超越php
2006/12/09 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
利用BootStrap弹出二级对话框的简单实现方法
2016/09/21 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
2014年教育培训工作总结
2014/12/08 职场文书
财务经理岗位职责
2015/01/31 职场文书
学期个人自我总结
2015/02/13 职场文书
合作与交流自我评价
2015/03/09 职场文书
主持人大赛开场白
2015/05/29 职场文书
创业计划书之美甲店
2019/09/20 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android