当前位置:首页 > PHP > 正文内容

php抽象类有什么用, php抽象类的作用

高老师9年前 (2017-06-13)PHP2126

    理解抽象类最快的方法就是使用场景,最近在看布尔PHP视频中看到这样的讲解非常容易懂,分享出来。

    假设如下场景:

    团队准备开发某网站,表建好了,页面设计好了.

    A组负责开发底层数据库操作类(DB)(多个DB类,操作Mysql类,操作SQLSERVER,SQLlite......).

    B级负责调用DB类.

    A组发生了争执,MySQL? Oracle? DB2? sqlite?规范是什么?

    B组.... 在争执中漫长等待.

    能否让B组不等待?

    解决:

    A组和B组先定1个数据库类的模板:

    模板中对 方法名,参数,返回值,都做严格的规定

    此时不管A组选用什么数据库,对于B组来说,没有任何影响;

    代码如下:(只需要知道抽象类是一种规范,具体实现由子类来做。)

 //定义一个抽象类,相当于模板
 abstract  class  DB{
 	
	/*
	 * 连接数据库,从配置文件读取配置信息
	 * 
	 */
	abstract public  function conn();
	
	
	/*
	 * 执行参数中的sql语句
	 * 
	 */
	abstract public  function query($sql);
	
	
	/*
	 * 获取多行数据
	 * 
	 */
	abstract public  function getAll(); 
	
	
	/*
	 * 获取单条数据
	 * 
	 */
	abstract public  function  getOne();
	
	
	/*
	 * 自定义创建Sql语句执行 (数据关联数组,表名字,动作,条件)
	 * 
	 */
	abstract public function  Exce($data,$table,$act='insert',$where='0');
	
	
	
	
	/*
	 * 返回上一条insert语句产生的主键值
	 * 
	 */
	abstract public  function lastId();
	
	
	/*
	 * 返回上一条语句影响的行数
	 * 
	 */
	abstract public  function affectRows();
	
	
	
	
 }
 
 
 
 //01.使用抽象类先来创建一个Mysql操作类 
class Mysql  extends DB{
	

	public function __construct(){

	}
	
	
	public function conn(){
	
	}
	
	
	
	public  function query($sql){

	}
	
	
	public  function getAll(){
	
	} 
	
	
	public  function  getOne(){
		
	}
	
	
	public function  Exce($data,$table,$act='insert',$where='0'){
		
	}
	
	
	public  function lastId(){
		
	}
	
	
	public  function affectRows(){
		
	}
	
	
}


 //02.使用抽象类先来创建一个Mssql操作类 
class Mssql  extends DB{
	

	public function __construct(){

	}
	
	
	public function conn(){
	
	}
	
	
	
	public  function query($sql){

	}
	
	
	public  function getAll(){
	
	} 
	
	
	public  function  getOne(){
		
	}
	
	
	public function  Exce($data,$table,$act='insert',$where='0'){
		
	}
	
	
	public  function lastId(){
		
	}
	
	
	public  function affectRows(){
		
	}
	
	
}

    

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/9.html

分享给朋友:

“ php抽象类有什么用, php抽象类的作用” 的相关文章

php引用变量的完全理解

php引用变量的完全理解

在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型.和其他语言有点差距.(1).在值类型中我们直接使用&符号表示指向对应变量的内存地址,当前变量和被指向的变量只要有1个的值被修改都会直接影响另外一个变量的值发生变化。(ps:还是非常节省内存的,可以使用...

PHP二维数组排序,PHP多维数组排序, array_multisort()

PHP二维数组排序,PHP多维数组排序, array_multisort()

使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...

php多进程实现任务管理器,定时执行任务,支持守护

php多进程实现任务管理器,定时执行任务,支持守护

主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /**  * 订单任务  */ class Order {    &n...

cookie跨域,cookie p3p跨域

cookie跨域,cookie p3p跨域

最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...

php new class

php new class

<?php $member = new class {     public function getInfo()     {    ...

在MyISAM引擎中使用事务会怎样

在MyISAM引擎中使用事务会怎样

众所周知MyISAM引擎不支持事务,但是我只是知道不支持事务,并未测试具体的表现是什么,测试代码如下:try {     //开启事务     Db::startTrans();    &...