<?php
/*
*接口 interface 接口是定义 类是实现 trait结构 解决oop 高耦合
*
*
*
*/
interface Idemo{
//接口中只允许声明两类成员 1.接口常量 2.公共的抽象方法
const APP_NAME='heidemi小铺';
public static function getInfo(...$info);
public static function cal($one,$two);
}
interface Idemo2{
}
//接口的实现 implements
class Work implements Idemo{
static function getInfo(...$info){
return print_r($info,true);
}
static function cal($one,$two){
return $one * $two;
}
}
ECHO work::APP_NAME;
ECHO Idemo::APP_NAME;
ob_clean();
echo Work::getInfo('古力娜扎','28',172,'新疆');
echo Work::cal(58,69);
/*
*工作类 extends 抽象类(普通类) imple
*/
echo '<hr>';
/* oop 封装 继承 多台
多态实现了动态绑定的功能
*/
//为计算机(主程序)扩展功能 接口是定义
interface USB{
function run();
}
//为计算机扩展功能 扩展了一个USB键盘 实现USB接口
class Ukey implements USB {
function run(){
return '运行USB键盘设备<br>';
}
}
class Umemo implements USB{
function run(){
return '运行USB 储存盘设备<br>';
}
}
class Umouse implements USB{
function run(){
return '运行USB鼠标设备<br>';
}
}
//主程序计算机
class Computer{
//计算机类中的一个方法 就可以应用任意一种方法USB设备
function useUSB($usb) //参数是一个对象
{
return $usb->run();
}
}
$c =new Computer;
echo $c->useUSB(new Umouse());
echo $c->useUSB(new Ukey());
<?php
//单例模式连接数据库
//
interface iDbBase{
//数据库操作curd
static function insert($db,$data);
static function slelect($db,$where=[]);
static function daleta($db,$where=[]);
static function updata($db,$data,$where=[]);
static function doConnect($dns,$username,$password);
}
abstract class aDb implements iDbBase{
//创建类的唯一实例 PDO对象s
private static $_instance;
//private 私有的 阻止此类在外部进行实例化
private function __Construct(){
}
private function __clone(){
}
static function doConnect($dns,$username,$password){
//得到pdo连接对象,储存在$_instance
if($is_null(self::$_instance)){
self::$_instance =new PDO($dns,$username,$password);
}
return self::$_instance;
}
}
//工作类
class DB extends aDb{
static function insert($db,$data){
};
static function slelect($db,$where=['gender'=>1]){
//select filed .. form tablename where gender=1 and id>1
$str='';
foreach($where as $k=>$v){
if(is_array($where)){
if(count($where) >1){
$str .=$k .'='.$v.'and';
}else{
$str .=$k .'='.$v;
}
}
}
return $db->query("SELECT 'name" , 'tel' FROM 'iuser' WHERE $str")->fetchall(PDO::FETCH_ASSOC)
};
static function daleta($db,$where=[]){
};
static function updata($db,$data,$where=[]){
};
static function doConnect($dns,$username,$password){
}
}
//客服端 代码
$dsn = 'mysql:host=39.105.79.62;dbname=news';
$db=Db:doConnect($dsn,'root','zhoujielun521'){
var_dump($db);
Db::select($db);
print_r(Db::select($db));
//
?>