php链式操作的实现
导读:收集整理的这篇文章主要介绍了php链式操作的实现,觉得挺不错的,现在分享给大家,也给大家做个参考。php链式操作的关键是在做完操作后要return $this;一、不使用__call方法实现链式操作<?phpclass SQL{...
收集整理的这篇文章主要介绍了php链式操作的实现,觉得挺不错的,现在分享给大家,也给大家做个参考。php链式操作的关键是在做完操作后要return $this;
一、不使用__call方法实现链式操作
?phpclass 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()方法也是)。
?phpclass 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视频教程:https://www.php.cn/course/list/29/tyPE/2.htML
以上就是php链式操作的实现的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: php链式操作的实现
本文地址: https://pptw.com/jishu/596043.html