PHP实现链式操作
什么是链式操作
我们经常会在一些应用框架中看到如下代码:
$db = new Database;
$db->where('cid = 9')->order('aid desc')->limit(10);
看起来很酷很炫,此即为PHP的链式操作。
代码实现
class Database {
public function where($where) {
return $this;
}
public function order($order) {
return $this;
}
public function limit($limit) {
return $this;
}
}
其关键内容就是在方法中返回return $this,使得方法的返回值再次指向类对象本身,可再进行二次调用。
传统调用方法
$db->where('cid = 9');
$db->order('aid desc');
$db->limit(10);
相比传统调用方法,采用链式操作后,一步到位,牛叉的狠。
时代在变迁,技术不断进度,代码既要好用,还得优雅。
目前链式操作的应用在数据库操作上使用的较多,其他方面可自行挖掘。
PHP实现链式操作的更多相关文章
- 用php实现一个简单的链式操作
最近在读<php核心技术与最佳实践>这本书,书中第一章提到用__call()方法可以实现一个简单的字符串链式操作,比如,下面这个过滤字符串然后再求长度的操作,一般要这么写: strlen( ...
- PHP中的__toString方法(实现JS里的链式操作)
_toString方法是在打印对象时自动调用的魔术方法,如果不声明会报以下错 Catchable fatal error: Object of class String could not be co ...
- jQuery链式操作[转]
用过jQuery的朋友都知道他强大的链式操作,方便,简洁,易于理解,如下 $("has_children").click(function(){ $(this).addClass( ...
- PHP链式操作输出excel(csv)
工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了.下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作.说到链式操作,在jquery中 ...
- php类自动装载、链式操作、魔术方法
1.自动装载实例 目录下有3个文件:index.php load.php tests文件夹 tests文件夹里有 test1.php <?php namespace Tests; class T ...
- PHP 设计模式 笔记与总结(4)PHP 链式操作的实现
PHP 链式操作的实现 $db->where()->limit()->order(); 在 Common 下创建 Database.php. 链式操作最核心的地方在于:在方法的最后 ...
- PHP 链式操作
所谓链式操作最简单的理解就是 操作完毕之后再返回对象$this 想必大家工作中基本都快用烂了得东西. 下面就是一个链式操作MYSQL数据库类. 最常见的链式操作 每一个方法操作之后,返回一个对象,直到 ...
- 如何一行jquery代码写出tab标签页(链式操作)
啦啦!今天又学了一招,js写几十行的tab标签页jquery写一行就行啦,用到了链式操作!以下是代码: <!DOCTYPE html> <html lang="en&quo ...
- jquery中链式操作的this指向
jquery中链式操作是如何实现? 例如:$(obj).children().css('color','red').next().css('color','red').siblings().css(' ...
- php 链式操作的实现 学习记录
php 面向对象中实现链式操作的关键部分:调用的方法中返回当前对象 ,从而实现链式操作: <?php namespace commom; class db { public function w ...
随机推荐
- ASCII码表(0-255)
- ROC 准确率,召回率 F-measure理解(转载)
ROC曲线.AUC.Precision.Recall.F-measure理解及Python实现 原文连接:http://www.cnblogs.com/haoguoeveryone/p/haogu ...
- centos7下挂载U盘和移动硬盘
挂载U盘 1.使用fdisk -l命令查看磁盘情况 [root@localhost ~]# fdisk -l 磁盘 /dev/sda:1000.2 GB, 1000204886016 字节,19535 ...
- TOC之关键链项目管理遇到软件project7原则
编著者:张克强 微博:张克强-敏捷307 软件project7原则简单介绍 美国著名软件project专家鲍伊姆(B.W.Boehm,也又另译为勃姆)在总结软件project准则和信条的基础上, ...
- boost::lockfree::stack
#include <boost/thread/thread.hpp> #include <boost/lockfree/stack.hpp> #include <iost ...
- 关于Apache Shiro权限框架的一些使用误区的解释
多了不说了,进入正题,shiro是个权限框架提供权限管理等功能,网上的教程一般都是互相抄,比如<shiro:principal property="xxx"/>这个标签 ...
- HashMap 扩容机制
引用于: http://www.cnblogs.com/hongdada/p/6024832.html HashMap: public HashMap(int initialCapacity, flo ...
- MySQL中哈希表
也称为散列表 由直接寻址表改进而来.先看直接寻址表 当关键字的全域U比较小时,直接寻址是一种简单而有效的技术.加入某应用要用到一个动态集合,其中每个元素都有一个取自全域U={0,1,...,m-1}的 ...
- Linux用户相关文件之密码文件
1.文件地址: /etc/shadow ----------. 1 root root 842 10月 6 13:09 /etc/shadow 2.文件内容: xiaol_1:$6$NdCAnK3y$ ...
- JavaScript四则运算计算器
直接上代码: 首先是HTML代码 <form> 第一个数字:<br> <input type="text" id="num1"&g ...