萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP實現的鏈式操作示例代碼

PHP實現的鏈式操作示例代碼

鏈式操作對於各位朋友來說很多不了解了,下面一聚教程小編來為各位介紹一篇關於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();
?>

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

copyright © 萬盛學電腦網 all rights reserved