主要對類別名,類別所擁有的方法,以及所傳參數起約束和規範做用,感覺跟php abstract 抽象類別又有點像。
一,介面的定義與呼叫 (建議學習:PHP影片教學)
<?php interface face1 { const param = 'test'; public function show(); } class test implements face1 { public function show() { echo "interface is run<br>"; } } $face = new test(); echo $face->show(); //inerface is run echo face1::param; //test ?>
說明:上面的範例要注意一點,介面的方法名稱是show,繼承介面的類別中必須有show這個方法,不然就會報錯。也就是說介面的方法是假的,真正運作的是在繼承的類別中的方法,就是因為這一點,所以我覺得,介面根php的抽象類別有點像。
二,對參數限制比較嚴格
<?php interface face1 { public function show(show $show); } // 显示正常 class test implements face1 { public function show(show $show) { echo "asdfasdf"; } } // 报fatal错误 class test2 implements face1 { public function show(aaa $aaa) { } } ?>
說明:上面的這個範例報fatal錯誤的,為什麼會報fatal錯誤呢?原因就在所傳參數是aaa $aaa,而不是show $show。繼承介面類別中,呼叫介面的方法時,所傳參數要和介面中的參數名稱要一至。不然就會報錯。
以上是php介面由什麼組成的詳細內容。更多資訊請關注PHP中文網其他相關文章!