博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【PHP面向对象】连贯操作实现
阅读量:6825 次
发布时间:2019-06-26

本文共 1389 字,大约阅读时间需要 4 分钟。

框架里连贯操作的实现方法

"", "table" =>"", "where" => "", "order" => "", "limit" => "", "group" => "", "having" => "", ); // 连贯操作调用field() where() order() limit() group() having()方法,组合sql语句 // __call()方法不存在时触发。$methodName调用的方法名,$args调用的参数(数组形式) function __call($methodName,$args){ // strtolower将第一个参数(代表不存在方法的方法名称),全部转成小写方式,获取方法名称 $methodName = strtolower($methodName); // 如果调用的方法名和成员属性数组$sql下标对应上,则将第二个参数给数组中下标对应的元素 if(array_key_exists($methodName,$this->sql)){ $this->sql[$methodName] = $args[0]; }else{ echo '调用类'.get_class($this).'中的方法'.$methodName.'()不存在'; } // 返回自己对象,则可以继续调用本对象中的方法,形成连贯操作 return $this; } // 输出连贯操作后组合输出一个sql语句,是连贯操作最后的一个方法。{}大括号表示代码块 function select(){ echo "SELECT {
$this->sql['field']} FROM {
$this->sql['table']} {
$this->sql['where']} {
$this->sql['order']} {
$this->sql['limit']}  {
$this->sql['group']} {
$this->sql['having']}"; } } $db = new Db(); // 连贯操作 $db->table('user')->field('sex, count(sex)')->where('where sex in ("男","女")') ->group('group by sex')->having('having avg(age) > 25')->select(); ?>

 

 

 

 
 
 
 

转载于:https://www.cnblogs.com/php99/p/c9f3e07aa12e7bc07909e32f54878d07.html

你可能感兴趣的文章
Kotlin : Retrofit + RxAndroid + Realm
查看>>
栈1--出栈序列
查看>>
原码 补码
查看>>
ListView setOnItemClickListener无效原因分析
查看>>
DD测磁盘读写性能
查看>>
CUDA编程(六)进一步并行
查看>>
UML类图和时序图
查看>>
C#中的Form,textBox,Bitmap,PictureBox,Button,WebBrowser
查看>>
Oracle Restart能够用来给Oracle GoldenGate 做 High Availability 使用么?
查看>>
css 五角星 (转)
查看>>
python—networkx:在一张图中画出多个子图
查看>>
Java 泛型 一
查看>>
Linux 系统lsblk和blkid命令
查看>>
SNF快速开发平台MVC-表格单元格合并组件
查看>>
c语言数据类型
查看>>
laravel 如何引入自己的函数或类库
查看>>
python IndentationError: unexpected indent
查看>>
[docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)
查看>>
Android RecyclerView遇到notifyDataSetChanged无效时的解决方案
查看>>
微信小程序的登陆流程详解
查看>>