PHP实现的连贯操作、链式操作实例
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 面向对象的一个例子
复制代码 代码如下: <?php class person{ //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //定义一个构造方法参数为姓名$name,性别$sex和年龄$age function __construct($name,$sex,$age){ //通过构造方法传进来的$name给成员属性$this->name赋初始值 $this->name=$name; //通过构造方法传进来的$sex给成员属
-
php面象对象数据库操作类实例
本文实例讲述了php面象对象数据库操作类.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: //此处构造一个数据库操作类,封装所有数据库操作 //可以扩展便于后台管理程序的使用 Class MySQLDB { var $host; var $user; var $passwd; var $database; var $conn; //利用构造函数实现变量初始化 //同时连接数据库操作 function MySQLD
-
PHP实现链式操作的核心思想
PHP 链式操作的实现 复制代码 代码如下: $db->where()->limit()->order(); 在 Common 下创建 Database.php. 链式操作最核心的地方在于:在方法的最后 return $this; Database.php: <?php namespace Common; class Database{ function where($where){ return $this; //链式方法最核心的地方在于:在每一个方法之后 return $thi
-
PHP 面向对象 final类与final方法
final---用于类.方法前. final类---不可被继承. final方法---不可被覆盖. final类不能被继承. 如果我们不希望一个类被继承,我们使用final来修饰这个类.这个类将无法被继承.比如我们设定的Math类,涉及了我们要做的数学计算方法,这些算法也没有必要修改,也没有必要被继承,我们把它设置成final类型. 复制代码 代码如下: <? //声明一个final类Math final class Math{ public static $pi = 3.14; public
-
PHP实现链式操作的原理详解
在一个类中有多个方法,当你实例化这个类,并调用方法时只能一个一个调用,类似: db.php <?php class db { public function where() { //code here } public function order() { //code here } public function limit() { //code here } } index.php <?php $db = new db(); $db->where(); $db->order()
-
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象一.封装性 封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作. php提供了三种访问控制修饰符 public 表示全局,本类内部,类外部,子类都可以访问 protected 表示受保护的,只有本类或子类可以访问 private 表示
-
PHP数据对象PDO操作技巧小结
本文实例讲述了PHP数据对象PDO操作技巧.分享给大家供大家参考,具体如下: PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口. <?php try { $dsn = "mysql:host=localhost; port=3306; dbname=wsq_hotel; charset=utf-8"; $user = 'root'; $psw ='root'; $pdo = new PDO($dsn,$user,$psw); $sql = 'sele
-
PHP对象链式操作实现原理分析
本文实例讲述了PHP对象链式操作实现原理.分享给大家供大家参考,具体如下: 什么是链式操作呢?使用jQuery的同学印象应该会很深刻.在jQuery中,我们经常会这样的来操作DOM元素: $("p").css("color").addClass("selected"); 连贯操作看起来的确很酷,也非常的方便代码的阅读.那么在PHP里面是否可以实现呢?答案是肯定的,当然了必须是在OOP中用才行,在过程化的程序中,就没有必要用这种方法了. 在PHP中
-
php面向对象的方法重载两种版本比较
多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数. PHP4 中仅仅实现了面向对象的部分的.简单的功能,而 PHP5 以后对对象的支持就强大的多了. 对于多态的实现,PHP4 只支持覆盖(override),而不支持重载(overload).但我们可以通过一些技巧来"模拟"重载的实现. PHP5 虽然可以支持覆盖和重载,但重载在具体实现上,和其他语言还有较大的差别. 1,在 PHP4 中"模
-
php基础知识:类与对象(4) 范围解析操作符(::)
范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员.方法和常量,还可以用于访问被覆盖类中的成员和方法. 当在类的外部访问这些静态成员.方法和常量时,必须使用类的名字. 把 Paamayim Nekudotayim 在希伯莱文就是双冒号的意思. 在类的外部使用 :: 操作符 class MyClass { const CONST_VALUE = 'A constant value'; } echo MyClass::CONST
-
PHP数据库操作面向对象的优点
我们都知道如何从Mysql获取我们需要的行(记录),读取数据,然后存取一些改动.很明显也很直接,在这个过程背后也没有什么拐弯抹角的.然而对于我们使用面对对象的程序设计(OOP)来管理我们数据库中的数据时,这个过程就需要大大改进一下了.这篇文章将对如何设计一个面对对象的方式来管理数据库的记录做一个简单的描述.你的数据当中的所有内部逻辑关系将被封装到一个非常条理的记录对象,这个对象能够提供专门(专一)的确认代码系统,转化以及数据处理.随着Zend Engine2 和PHP5的发布,PHP开发者将会拥
随机推荐
- php计算数组相同值出现次数的代码(array_count_values)
- Cygwin下安装vim后,vim中退格键无法正常使用的解决方法
- 原生Js实现按的数据源均分时间点幻灯片效果(已封装)
- JS数组去重与取重的示例代码
- IOS开发使用KeychainItemWrapper 持久存储用户名和密码
- 把时间戳转换为日期格式的js代码
- discuz authcode 经典php加密解密函数解析
- javascript replace方法与正则表达式
- Go语言中io.Reader和io.Writer的详解与实现
- ASP的Error对象知识简析
- 下载完成后页面不自动关闭的方法
- Js获取当前日期时间及格式化代码
- java中判断字段真实长度的实例(中文2个字符,英文1个字符)
- java使用TimerTask定时器获取指定网络数据
- JQuery实现动态添加删除评论的方法
- JS模拟的Map类实现方法
- 浅析Python的Django框架中的Memcached
- 深入理解spring boot异步调用方式@Async
- php blowfish加密解密算法
- iOS实现高性能简单易用的星星评分控件