PHP实现的链式操作示例代码

作者:袖梨 2022-06-24

这篇文章主要介绍了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;
     }
}
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();
?>

在使用了链式写法后,代码会更简洁,更酷,也希望小伙伴能更好的去运用它。

相关文章

精彩推荐