接口就是把不同類的共同行為經行了定義,然後在不同的類裡面實現不同功能。當有很多人一起開發一個項目時,可能都會去調用別人寫的一些類,那你就會問,我怎麼知道他的某個功能的實現方法是怎麼命名的呢,這個時候PHP接口類interface就起到作用了,當我們定義了一個接口類時,它裡面的方式是下面的子類必須實現的,比如 :
多態interface User{ // User接口 public function getName(); public function setName($_name); } class NormalUser implements User { // 實現接口的類. private $name; public function getName(){ return $this->name; } public function setName($_name){ $this->name = $_name; } } class UserAdmin{ //操作. public static function ChangeUserName(User $_user,$_userName){ $_user->setName($_userName); } } $normalUser = new NormalUser(); UserAdmin::ChangeUserName($normalUser,"Tom");//這裡傳入的是 NormalUser的實例. echo $normalUser->getName(); ?>案例二: 抽象類
getValue() . " "; } } class ConcreteClass1 extends AbstractClass { protected function getValue() { return "ConcreteClass1"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass1"; } } class ConcreteClass2 extends AbstractClass { public function getValue() { return "ConcreteClass2"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass2"; } } $class1 = new ConcreteClass1; $class1->printOut(); echo $class1->prefixValue('FOO_') ." "; $class2 = new ConcreteClass2; $class2->printOut(); echo $class2->prefixValue('FOO_') ." "; ?>