php接口类interface

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

//定义接口

interface User{

function getDiscount();

function getUserType();

}

//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{}

你可能感兴趣的:(php接口类interface)