以前學Java的時候就對接口理解過一回,當時明白了.
最近在看PHP的OOP特性,發現和Java很像,就是語法上有不同,但是有關資料少的可憐,找到了幾個也不能充分說明PHP下接口的特性,有關接口的部分,總算是理解了.
VideoCard.PHP 接口文件(顯卡的功能接口定義)
<?PHP
interface VideoCardInter{
function Display();
function getName();
}
?> Dmeng.PHP 實現接口(帝盟的廠家實現了這些接口,怎麼實現的,主板廠家不用管)
<?PHP
include_once("VideoCard.PHP");
class Dmeng implements VideoCardInter {
function Display(){
echo "Display";
}
function getName(){
return "Dmeng VideoCard";
}
}
?> Mainboard.PHP 應用接口(把顯卡插到主板上,主板只要用這些接口就行了,也可以不用)
<?PHP
include_once("VideoCard.PHP");
include_once("Dmeng.PHP");
class Mainboard{
var $vc;
function run(VideoCardInter $vc){ //定義VideoCardInter接口類型參數,這時並不知道是誰來實現。
$this->vc=$vc;
$this->vc->Display();
echo "主板運行!";
}
}
$conputer=new Mainboard();
$conputer->run(new Dmeng); //用的時候把實現接口類的名稱寫進來,(現在是帝盟的顯卡,也可以換成別的場家的,只要他們都實現了接口)
?> 由於PHP是動態語言,所以類型不能像Java一樣定的很死,定義接口的時候,寫上返回類型反而出錯,估計PHP6的時候可能寫義的要嚴格一些吧.
PS:我只把最基本的部分寫上,還可以加CPU等接口.