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

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

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

    理解抽象类最快的方法就是使用场景,最近在看布尔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调用.net的dll文件,php调用.net dll

php调用.net的dll文件,php调用.net dll

本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET 基本语法如下:$obj = new DOTNET("assembly", "classname")a...

php多进程,php多进程处理任务,php多进程应用场景

php多进程,php多进程处理任务,php多进程应用场景

php多进程应用场景主要是非web端,fpm下是不支持多进程的,非类linux操作系统都不支持,请在cli模式使用.可以使用多进程做任务分发,批量计算,批量文件处理,批量爬虫,网络运维等等。下面看一份简单的入门demo//创建子进程 $pid=pcntl_fork(); //返回-1,创建失败,不...

 php max input vars,max input vars限制,max input vars 设置

php max input vars,max input vars限制,max input vars 设置

在一个正式项目中操作人员提交239个产品信息进行保存,但是系统却提示没有提交239个产品,于是开启错误信息,显示如下:Warning: Unknown: Input variables exceeded 1000. To incr...

xmlrpc  php,php通过xml-rpc进行通信

xmlrpc php,php通过xml-rpc进行通信

xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...

PHP异常处理,PHP自定义错误,PHP记录错误日志

PHP异常处理,PHP自定义错误,PHP记录错误日志

面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...

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

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

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