理解抽象类最快的方法就是使用场景,最近在看布尔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(){ } }
上家公司开发医院挂号系统,系统采用GBK编码。ajax发送的中文用户名让PHP保存为cookie出现乱码的解决方案。1.Javascript变量var user=document.getElementById('user').innerText; user=escape(u...
//$ak开发密钥,$cityname城市名称(支持省县乡详细地址) public function getposition($ak,$cityname){ $callback=array('lng'=>0,'l...
项目需要使用websocket推送最新订单,客户服务器非linux不支持swoole,因此使用原生,直接上代码(1).PHP服务端<?php ini_set('error_reporting', E_ALL ^ E_NOTICE); ini_set...
通过http推送消息给socket,socket服务再向客户端推送<?php /* * Socket推送 * 请用守护进程方式启动php msgservice.php & (socket只...
源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...
使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...