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

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

高老师8年前 (2017-06-13)PHP1783

    理解抽象类最快的方法就是使用场景,最近在看布尔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(){
		
	}
	
	
}

    

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

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

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

分享给朋友:

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

php 经纬度获取城市,php 经纬度转城市

php 经纬度获取城市,php 经纬度转城市

通过经纬度转换为城市名称,并获得城市的编号,通常在全国类型的商城中比较通用。//经纬度转城市名称(返回城市id,城市名称) //$ak开发密钥,$lat纬度,$lng经度,$type返回数据类型 public function getCityName($ak,$lat,$lng)...

php引用变量的完全理解

php引用变量的完全理解

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

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...

 php命令行中文乱码,php cli中文乱码

php命令行中文乱码,php cli中文乱码

<?php //如果支持exec函数,可以使用的方式 exec('chcp 65001'); //如果exec函数因安全问题禁用,可以使用的方式 pclose(popen('chcp 65001', 'r'));...

php端口复用,php socket端口复用

php端口复用,php socket端口复用

第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0....

php迭代器返回值,php yield getReturn

php迭代器返回值,php yield getReturn

php生成器的方法getReturn获取生成器迭代完成后的返回值,当生成器迭代完成会将生成器的返回值返回,因此如果迭代器未进行迭代是获取不到值的,如果你没有return值则返回null,参考代码:<?php function G1() {    &nbs...