威尼斯www.9778.com-威尼斯正版官方网站

领悟php接口中interface存在的意义

日期:2020-02-14编辑作者:编程人生

可能大家都懂这些,作为不懂的我猜测了一下这个interface的意义,他就是为了后面调用的时候再调用的方法中调用实现类中interface中存在的内容,好绕口啊,写个例子留作以后看吧
pay.php
复制代码 代码如下:
interface Ipay
{
 function withmoney();

在学习框架阅读框架源码的时候,会看到底层很多interface类,类中定义了一些方法,但仅仅就是定义了方法而已,称作接口对象。对于php的interface类,实现接口用implements,并且必须完全实现接口类中的方法,例如:

 //function withinternet();
}
class Dmeng implements Ipay
{

//定义接口

 function withmoney()
 {
  echo "花人民币买东西";
 }
 function withinternet()
 {
  return "用网银支付";
 }
}

interface User{

usei.php
复制代码 代码如下:
include_once 'pay.php';
class main
{
 function run($vc)
 {
  $this->vc = $vc;
  $this->vc->withinternet();
  echo "yunxing";
 }

function getDiscount();

}
$com= new main();
$com->run(new Dmeng);

function getUserType();

就是上面那样,我们将interface中的某个方法注释掉,发现再调用的时候,就没用了

}

//VIP用户 接口实现

class VipUser implements User{

// VIP 用户折扣系数

private $discount = 0.8;

function getDiscount() {

return $this->discount;

}

function getUserType() {

return "VIP用户";

}

}

class Goods{

var $price = 100;

var $vc;

//定义 User 接口类型参数,这时并不知道是什么用户

function run(User $vc){

$this->vc = $vc;

$discount = $this->vc->getDiscount();

$usertype = $this->vc->getUserType();

echo $usertype."商品价格:".$this->price*$discount;

}

}

$display = new Goods();

$display ->run(new VipUser); //可以是更多其他用户类型

?>

运行该例子:VIP用户商品价格:80元。

user接口类,之提供了用户折扣方法,VipUser类实现了具体折扣系数,goods类实现了不同用户的折扣系数。

所以对于一个团队开发的项目,比如我 负责Vip用户的折扣,你负责其他用户的折扣,我们只要定义好一个interface,在我们逻辑 中去实现这个类就可。

php也能在继承一个类的时候实现多接口:

class A extends B implements C,D{}

本文由威尼斯www.9778.com发布于编程人生,转载请注明出处:领悟php接口中interface存在的意义

关键词:

php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码

今天在处理删除字符串两端的特定字符时遇到了下面的问题,先看例子   $str = 'akmumu/writedb.json';  我要做的是删除开...

详细>>

PHP中把有符号整型转换为无符号整型方法

在一个短地址项目中,根据六位字符与ID的相互映射的算法,当ID超过2147483647的时候,六位字符的短地址映射的ID变成...

详细>>

PHP ajax 异步执行不等待执行结果的处理方法

短地址生成应用中,要根据长地址生成网页快照,这个生成时间非瞬发,不可预估。 获取网页快照并生成缩略图可分...

详细>>

浅谈 JS 创建对象的 8 种模式

Object.create() 是什么? Object.create(proto [, propertiesObject ]State of Qatar是E5中提出的后生可畏种新的指标创制格局,第叁个参...

详细>>