PHP实现的链式操作示例代码

这篇文章主要介绍了PHP实现的链式操作实例。写程序的人都喜欢偷懒,希望少打几行代码,并且让代码看起来很酷。

就好比很多小伙伴在写if…else…的时候会直接使用三元运算符一样。

而用过JS的人应该都见识过js中的链式方法。如 somevars.func().func2()…funcN();这样的写法使得代码更简练,并且作用关系一目了然。

那么在php中可以这么做么,显然也是可以的,但是php与js的差别是,在js中变量本身具有对象的性质,但是php的变量却不是。

现在在很多的PHP的WEB框架中经常会看见链式操作,相信很多同学也使用过,本文将继续以ThinkPHP中的核心类作为实例,给大家讲解一下,需要的朋友可以参考下。

在ThinkPHP核心文件Model.class.php中可以看到这么几段代码(忽略逻辑部分):

class Model {
    /**
    * 查询SQL组装 join
    */
    public function join($join) {
        /*
        * code
        */
        return $this;
    }
    /**
    * 指定查询条件 支持安全过滤
    */
    public function where($where){
        /*
        * code
        */
        return $this;
    }
    /**
    * 指定结果顺序
    */
    public function order($order){
        /*
        * code
        */
        return $this;
    }
    /**
    * 指定查询数量
    */
    public function limit($limit){
        /*
        * code
        */
        return $this;
    }
    /**
      * 查询数据集
     */
    public function select() {
         /*
         * code
         */
         return $resultSet;
     }
}
<?php
require ('Model.class.php');
$model = new Model();
/*
 * 链式操作写法
*/
$model->join('left join user on oo=xx')->where('id=1')->order('id asc')->limit(10)->select();
/*
 * 传统写法
*/
$model->join('left join user on oo=xx');
$model->where('id=1');
$model->order('id asc');
$model->limit(10);
$model->select();
?>

在使用了链式写法后,代码会更简洁,更酷,也希望小伙伴能更好的去运用它。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 实例
, 变量
, 代码
, this
运算符
链式栈的实现、链式队列的实现和运算、链式队列的实现、队列的链式表示和实现、栈的链式表示和实现,以便于您获取更多的相关知识。

时间: 2024-10-27 16:21:43

PHP实现的链式操作示例代码的相关文章

PHP简单数据库操作类实例【支持增删改查及链式操作】_php技巧

本文实例讲述了PHP简单数据库操作类.分享给大家供大家参考,具体如下: 在进行项目开发时,数据库是必不可少的东西了.但是很多时候却又对数据库SQL语句的繁杂而感到头疼.提供一个我自己使用的数据库操作类(模型Model),供大家使用.支持增.删.改.查,支持链式操作,代码不到100行,非常小巧方便,很适合小项目的快速部署使用. /** * * @Authot: summer * * @E-mail: wenghang1228@me.com * * @Data: 2015-02-06 * * @Pr

JavaScript对象链式操作代码(jquery)_js面向对象

虽然现在慢慢减少了对jQuery的使用(项目上还是用,效率高点.平时基本不用了),希望从而减少对jQuery的依赖度. 但是这链式操作的方式实在吸引人(貌似现在不少新库都采用了链式操作). 新手无畏嘛,所以写了以下代码.主要是避免以后又忘了,呵呵. 复制代码 代码如下: window.k = function() { return new k.fn.init(arguments); } k.fn = k.prototype = { init:function() { this.length =

jQuery链式操作的问题

两个问题 1.jQuery的链式操作是如何实现的? 2.为什么要用链式操作? 大家认为这两个问题哪个好回答一点呢? 链式操作 原理相信百度一下一大把,实际上链式操作仅仅是通过对象上的方法最后 return this 把对象再返回回来,对象当然可以继续调用方法啦,所以就可以链式操作了.那么,简单实现一个: //定义一个JS类 function Demo() { } //扩展它的prototype Demo.prototype ={ setName:function (name) { this.na

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

  这篇文章主要介绍了PHP实现链式操作的核心思想,本文着重讲解它的核心思想,比较直观明子,需要的朋友可以参考下 PHP 链式操作的实现 代码如下: $db->where()->limit()->order(); 在 Common 下创建 Database.php. 链式操作最核心的地方在于:在方法的最后 return $this; Database.php: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php namespace Common;  

让JavaScript中setTimeout支持链式操作的方法

  这篇文章主要介绍了让JavaScript中setTimeout支持链式操作的方法,本文直接给出代码实例,需要的朋友可以参考下 修改很简单,通过参数判断,然后返回下promise对象 代码如下: (function() { var timeout = setTimeout; window.setTimeout = function(fn, time) { if (!time) { time = fn; return $.Deferred(function(dfd) { timeout(func

jquery链式操作的正确使用方法

 jQuery实现方法的链式操作是非常容易的.这里给出正确的使用方法 糟糕的使用方法   代码如下: $second.html(value); $second.on('click',function(){ alert('hello everybody'); }); $second.fadeIn('slow'); $second.animate({height:'120px'},500);     建议使用方法    代码如下: $second.html(value); $second.on('c

jQuery对象的链式操作用法分析_jquery

本文实例讲述了jQuery对象的链式操作用法.分享给大家供大家参考,具体如下: jQuery对象的链式操作 首先来看一个例子: 复制代码 代码如下: $("#myphoto").css("border","solid 2px#FF0000").attr("alt"," good"); 对一个jQuery对象先调用了css()函数修改样式,然后使用attr()函数修改属性,这种调用方式象链一样,所以称为&qu

jQuery链式操作实例分析_jquery

本文实例讲述了jQuery链式操作.分享给大家供大家参考,具体如下: 从过去的实例中,我们知道jQuery语句可以链接在一起,这不仅可以缩短代码长度,而且很多时候可以实现特殊的效果. <script type="text/javascript"> $(function() { $("div").addClass("css1").filter(function(index) { return index == 1 || $(this).

jQuery链式操作如何实现以及为什么要用链式操作_jquery

两个问题 1.jQuery的链式操作是如何实现的? 2.为什么要用链式操作? 大家认为这两个问题哪个好回答一点呢? 链式操作 原理相信百度一下一大把,实际上链式操作仅仅是通过对象上的方法最后 return this 把对象再返回回来,对象当然可以继续调用方法啦,所以就可以链式操作了.那么,简单实现一个: 复制代码 代码如下: //定义一个JS类 function Demo() { } //扩展它的prototype Demo.prototype ={ setName:function (name