ThinkPHP框架SQL操作链式写法原理的示例分析

  介绍

这篇文章主要介绍了ThinkPHP框架SQL操作链式写法原理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

引言

大家如果有面试几次不难发现,虽然国产的TP一直被人诟病。但是丝毫不能影响它在广大企业中的开发受到青睐,强大的社区,暴力实用详细的中文手册。有一个地方相信大家都不陌生,就是他的链式写法,链式写法的一定程度上简化了SQL工作量对吧,是怎么实现的,那我们从面向对象入手,分析链式写法的实现原理。

如下语句

$ User→限制(10)→地方(& # 39;状态=1 & # 39;)→选择();

代码

我们知道,面向对象的方法,可以返回多种数据类型,当然,也可以返回<代码>对象自身> & lt; php ?   测试{class    ,,,private  var 美元;=,““   ,,,public  function  Func () {   ,,,,,,,这个→美元var =,“var  is  change";   ,,,,,,,return 美元;   ,,,}      }      ,,,obj 美元;=,new 测试();   ,,,var_dump ($ obj);   ,,,var_dump (obj→美元Func ());

打印出来的结果:

对象(测试)[1]   private 才能;& # 39;var # 39;,=祝辞,string  & # 39; & # 39;,(长度=0)   对象(测试)[1]   private 才能;& # 39;var # 39;,=祝辞,string  & # 39; Var  is 改变# 39;,(长度=13)

不难发现:我们私有变量$ var发生了改变。也就是说,我们obj→美元Func(),执行后,返回了一个带着<代码> $ var =<代码>“var change"> $ User→限制(10)→地方(& # 39;状态=1 & # 39;)→选择();

那么这个语句就不难理解了。   方法执行后,传递对象给下个方法,以此类推。

简单的选择()实现

& lt; php ?   ,,,class  UserModel {      ,,,,,,,private  field 美元;,,,,=?”,   ,,,,,,,private  tableName 美元;=?”;   ,,,,,,,private  where 美元;,,,,=?”;   ,,,,,,,private  order 美元;,,,,=?”;   ,,,,,,,private  limit 美元;,,,,=?”;      ,,,,,,,function 字段(字段){   ,,,,,,,,,,,这个→美元field =,美元;   ,,,,,,,,,,,return 美元;   ,,,,,,,}      ,,,,,,,function 表(表美元){   ,,,,,,,,,,,这个→美元table =,美元的表;   ,,,,,,,,,,,return 美元;   ,,,,,,,}      ,,,,,,,function 顺序(顺序){   ,,,,,,,,,,,这个→美元order =,“order  BY “美元订单;   ,,,,,,,,,,,return 美元;   ,,,,,,,}      ,,,,,,,function (美元){   ,,,,,,,,,,,这个→美元where =,“where “在美元;   ,,,,,,,,,,,return 美元;   ,,,,,,,}      ,,,,,,,function 限制(美元指数,limit 美元;=,0){   ,,,,,,,,,,,这个→美元limit =,“limit “。美元指数;   ,,,,,,,,,,,如果(限制美元){   ,,,,,,,,,,,,,,,这个→美元限制。=,,,{$极限}“;   ,,,,,,,,,,,}   ,,,,,,,,,,,return 美元;   ,,,,,,,}      ,,,,,,,function 选择(){   ,,,,,,,,,,,如果(空($ this→表名)){   ,,,,,,,,,,,,,,,这个→美元tableName =, str_replace (“Model",,,,,, __CLASS__进行);//如果表名不指定,则获取类名   ,,,,,,,,,,,}   ,,,,,,,,,,,selectSql 美元;=癝ELECT  {$ this→领域},   null   null   null   null   null   null   null   null   null   null   null   null   null   null

ThinkPHP框架SQL操作链式写法原理的示例分析