接口的定义
抽象类提供了具体实现的标准,而接口则是纯粹的模板。接口只定义功能而不包含实现的内容。接口可用关键字interface来声明。接口可以包含属性和方法声明,但方法体为空。
定义一个接口
<?php
interface Animal {
//接口本身就是一个抽象类,只不过没有abstract关键字,其中的方法也是抽象方法,且其中的方法只能是public公开的(接口就是一种模板,对于实现它的类来说,就必须要实现其中的方法,所以只能是public,否则会报错:Fatal error: Access type for interface method Animal::setit() must be omitted ),抽象类中的方法可以使public、protected(不能是private,因为继承抽象类的必须要实现抽象类中的抽象方法)
public function setit();
}
那么接口类中可以定义成员变量、常量属性吗?让我们来试一试:
<?php
interface Animal {
const NAME = 'animal';
public function setit();
}