PHP实现的连贯操作、链式操作实例


Posted in PHP onJuly 08, 2014

PHP中的连贯操作看起来的确很酷,也非常的方便代码的阅读,当然了必须是在OOP中用才行,在过程化的程序中,就没有必要用这种方法了。有实现这个方法的有用_CALL来实现的,而我下面写的这个例子,则不是用_call的,大家可以扩展一下吧。

下面写的这个SQL语句组合类,主要是用于学习的,如果有同学想拿去用,请再完善一下。

/*
 * SQL语句组合实例类,始发文章web开发笔记
 * 学习用,非专业类
 * */
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
PHP 相关文章推荐
用Socket发送电子邮件(利用需要验证的SMTP服务器)
Oct 09 PHP
PHP4 与 MySQL 交互使用
Oct 09 PHP
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
php数组总结篇(一)
Sep 30 PHP
ThinkPHP模板自定义标签使用方法
Jun 26 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
php操作redis缓存方法分享
Jun 03 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 #PHP
PHP的魔术常量__METHOD__简介
Jul 08 #PHP
PHP中的插件机制原理和实例
Jul 08 #PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 #PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 #PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 #PHP
php发送get、post请求的6种方法简明总结
Jul 08 #PHP
You might like
浅析PHP Socket技术
2013/08/02 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
JQuery触发事件例如click
2013/09/11 Javascript
javascript读写json示例
2014/04/11 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
python实现图片识别汽车功能
2018/11/30 Python
Python中正则表达式的用法总结
2019/02/22 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
程序员岗位职责
2013/11/11 职场文书
电子商务求职信
2014/06/15 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
python库sklearn常用操作
2021/08/23 Python
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server