1、接口的定义:
接口:一种成员属性为抽象的特殊抽象类,在程序中同为规范的作用
2、其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这 个时候PHP接口类interface就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 :
<?php
interface subject
{
public function registerObserver( observer $o); //注册为观察者
public function removeObserver( observer $o); //删除观察者
public function notifyObservers(); //通知观察者
}
interface observer
{
public function update(); //更新
}
?>
我声明一个subject接口类,定义了三个方法:注册为观察者(registerObserver),删除观察者(removeObserver),通知观察者(notifyObservers),那么继承此类的所有子类都必须实现这3个方法少一个都 不行,如果子类没有实现这些话,就无法运行。实际上接口类说白了,就是一个类的模板,一个类的规定,如果你属于这类,你就必须遵循我的规定,少一个都不 行,但是具体你怎么去做,我不管,那是你的事,如:
class contentSubject implements subject
{
private $observers=array();//用于记录所有观察者的变量
public function contentSubject()
{
echo "subject ok<br />";
}
public function registerObserver(observer $o)
{
array_push($this->observers ,$o); //将观察者放到数组中
}
public function removeObserver( observer $o)
{
unset( $this->observers[array_search($o,$this->observers) ]);//删除一个观察者
}
public function notifyObservers() //通知所有的观察者
{
foreach ($this->observers as $observer)
{
$observer->update();
}
}
}
结论 : PHP接口类interface就是一个类的领导者,指明方向,子类必须完成它指定方法。这样不同的开发者就不要去了解别人怎么命名相应的方法。
注:本文参考别人的总结写出。有一些话觉得说得很透彻,就直接引用了。