教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php链式操作的实现

php链式操作的实现

发布时间:2020-10-02   编辑:jiaochengji.com
教程集为您提供php链式操作的实现等资源,欢迎您收藏本站,我们将为您提供最新的php链式操作的实现资源

php链式操作的关键是在做完操作后要return $this;

一、不使用__call方法实现链式操作

<?php class Sql{     private $sql=array("from"=>"",             "where"=>"",             "order"=>"",             "limit"=>"");      public function from($tableName) {         $this->sql["from"]="FROM ".$tableName;         return $this;     }      public function where($_where='1=1') {         $this->sql["where"]="WHERE ".$_where;         return $this;     }      public function order($_order='id DESC') {         $this->sql["order"]="ORDER BY ".$_order;         return $this;     }      public function limit($_limit='30') {         $this->sql["limit"]="LIMIT 0,".$_limit;         return $this;     }     public function select($_select='*') {         return "SELECT ".$_select." ".(implode(" ",$this->sql));     } }  $sql =new Sql();  echo $sql->from("testTable")->where("id=1")->order("id DESC")->limit(10)->select(); //输出 SELECT * FROM testTable WHERE id=1 ORDER BY id DESC LIMIT 0,10 ?>

二、使用__call方法实现链式操作

__call()在对象调用一个不可访问的方法时会被触发,所以可以实现类的动态方法的创建,实现php的方法重载功能,但它其实是一个语法糖(__construct()方法也是)。

<?php class String {     public $value;      public function __construct($str=null)     {         $this->value = $str;     }      public function __call($name, $args)     {         $this->value = call_user_func($name, $this->value, $args[0]);         return $this;     }      public function strlen()     {         return strlen($this->value);     } } $str = new String('01389'); echo $str->trim('0')->strlen(); // 输出结果为 4;trim('0')后$str为"1389" ?>

以上就是php链式操作的实现的详细内容,更多请关注教程集其它相关文章!

  • 本文转载于:csdn,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    php链式操作的实现
    jquery链式操作、链式写法的小例子
    JavaScript 对象链式操作小例子
    php操作数据库的简单示例
    PHP三种方式实现链式操作
    php实现数据库链式查询的简单例子
    PHP实现的链式操作示例代码
    php 伪异步执行实现方法
    PHP 实现常用数据结构之链表
    jquery链式操作的正确使用方法

    [关闭]
    ~ ~