php框架 - 关于PHP类调用的一个技巧
高洛峰
高洛峰 2017-04-10 17:52:04
[PHP讨论组]

像thinkPHP的PHP开发框架都会封装数据库的操作类,会出现方法调用方法的情况,如下代码:

M('Test')->where(['status'=>1])->field('id,name')->select();

这种实现方式是什么思想呢,有没有对应的具体技术名词呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(7)
PHP中文网

链式调用, 通过返回$this实现.

阿神

写个demo给你:

<?php 
/**
 * 简单的加减法计算类
 * 
 * @author Flc <2016-11-23 19:32:26>
 */
class Calc
{
    /**
     * 结果
     * @var integer
     */
    protected $result = 0;

    /**
     * 加法
     * @param number $value 
     */
    public function add($value)
    {
        $this->result += $value;

        return $this;
    }

    /**
     * 减法
     * @param  number $value 
     */
    public function sub($value)
    {
        $this->result -= $value;

        return $this;
    }

    /**
     * 返回结果
     * @return [type] [description]
     */
    public function result()
    {
        return $this->result;
    }
}

$calc = new Calc;
echo $calc
    ->add(1)
    ->add(2)
    ->sub(1)
    ->add(11)
    ->result();

重点就是每个方法的return $this;

PHP中文网

链式调用,返回$this就ok了,你可以参考下各种ORM框架

迷茫

链式操作么,每次返回的是一个对象

迷茫

链式操作,返回$this,方法的调用

PHPz

链式操作

return $this;
ringa_lee

链式调用 每次都返回对象

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号