像thinkPHP的PHP開發框架都會封裝資料庫的操作類,會出現方法呼叫方法的情況,以下程式碼:
<code>M('Test')->where(['status'=>1])->field('id,name')->select();</code>
這種實現方式是什麼思想呢,有沒有對應的具體技術名詞呢?
像thinkPHP的PHP開發框架都會封裝資料庫的操作類,會出現方法呼叫方法的情況,以下程式碼:
<code>M('Test')->where(['status'=>1])->field('id,name')->select();</code>
這種實現方式是什麼思想呢,有沒有對應的具體技術名詞呢?
鍊式呼叫, 透過返回$this
實作.
寫demo給你:
<code class="php"><?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();</code>
重點就是每個方法的<code>return $this;</code>
MVC模型的原理可以去了解一下。
然後再去看下關於類別的封裝。
M('Test')其實相當於定義了一個 TestModel 的類別.
M('Test')->where(),則是呼叫該類別裡面的where方法。
主要的困難還是在於對MVC模型的實作吧。
這個是關於MVC模型實作的一個教程,可以去看一下。
https://www.shiyanlou.com/cou...
鍊式調用,返回$this就ok了,你可以參考下各種ORM框架
鍊式操作麼,每次回傳的是一個物件
鍊式操作,回傳$this,方法的呼叫
鍊式操作
<code>return $this;</code>
樓上的都說的對。我補個連接把。
<code>http://blog.csdn.net/zhengwish/article/details/51742880</code>
鍊式呼叫 每次都回傳物件