zoukankan      html  css  js  c++  java
  • php链式调用

    我们经常在项目中会写到

    Mode::find()->where()->orderBy()->limit();

    链式调用,那么它是怎么实现的呢?

    昨天看韩天峰大佬的视频,学到了 关键点在于类中方法返回的 return $this

    我们平常使用的时候

    $model = new BaseObject();
    $model->where();
    $model->limit();

    当where 方法中最后返回 $this 的时候我们就可以使用

    $model->where()->limit();

    代码如下:

    <?php
    class BaseObject
    {
        public $where;
        public $limit;
    
        function where($condition)
        {
            $this->where = $condition;
        }
    
        function limit($limit)
        {
            $this->limit = $limit;
        }
    }
    
    $model = new BaseObject();
    $model->where(['id' => 1]);
    $model->limit(10);
    
    var_dump($model);
    

    结果为:

    object(appcontrollersBaseObject)#1 (2) {
    ["where"]=>
    array(1) {
    ["id"]=>
    int(1)
    }
    ["limit"]=>
    int(10)
    }

    链式调用:

    <?php
    class BaseObject
    {
        public $where;
        public $limit;
    
        function where($condition)
        {
            $this->where = $condition;
            return $this;
        }
    
        function limit($limit)
        {
            $this->limit = $limit;
            return $this;
        }
    }
    
    $model = new BaseObject();
    $model->where(['id' => 1])->limit(10);
    
    var_dump($model);
    

    结果为:

    object(BaseObject)#1 (2) {
    ["where"]=>
    array(1) {
    ["id"]=>
    int(1)
    }
    ["limit"]=>
    int(10)
    }

    总结:

    1. 很多知识点,你如果不去思考,不去学习,你一直还是不会的,要养成独立思考和不断学习的习惯

    2. Leary by Practice,看到大佬当年桌面的屏保,通过实践学习,自己还是动手太少,一直停留在想的阶段,所以这个阶段多写代码,多做事

  • 相关阅读:
    Erlang in Delphi 项目发布!
    云计算将如何改变世界
    win2000server IIS和tomcat5多站点配置
    实践中整理出tomcat集群和负载均衡
    VCL已死,RAD已死(6) 结语与预测
    window下tomcat集群和负载均衡
    团队开发经验:如何带领一个项目团队并做好项目总结 !!
    Install latest R for ubuntu
    P1297 单选错位
    P5322 排兵布阵
  • 原文地址:https://www.cnblogs.com/zhangpengfei5945/p/13957334.html
Copyright © 2011-2022 走看看