PHP實現的鏈式操作範例程式碼

來源:互聯網
上載者:User

這篇文章主要介紹了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;     }}
<?phprequire ('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();?>

在使用了鏈式寫法後,代碼會更簡潔,更酷,也希望小夥伴能更好的去運用它。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.