介面定義規範(方法簽章),不含實作,支援多重實作與介面繼承,體現多態與高內聚低耦合設計。
interface 介面名 {
// 常數
// 方法簽章(無主體)
}
class 類別名 implements 介面1, 介面2 ... { ... }
public。const NAME = 值;),預設 public,存取方式 介面名::常數名。interface A extends B, C)。extends 父類別 implements 介面1, 介面2。<?php
interface iUsb { public function start(); public function stop(); }
class Camera implements iUsb {
public function start(){ echo "相機啟動<br/>"; }
public function stop(){ echo "相機停止<br/>"; }
}
class Phone implements iUsb {
public function start(){ echo "手機啟動<br/>"; }
public function stop(){ echo "手機停止<br/>"; }
}
$c=new Camera(); $c->start(); $c->stop();
$p=new Phone(); $p->start(); $p->stop();
?>
interface iUsb { const A = 90; }
echo iUsb::A; // 90
interface iUsb2 { public function a(); }
interface iUsb3 { public function b(); }
interface iUsb extends iUsb2, iUsb3 { const A=90; }
class Class1 implements iUsb {
public function a(){}
public function b(){}
public function test(){}
}
echo iUsb::A;