PHP Interface在PHP 5.6版本中被引入,它是一種抽象數(shù)據(jù)類型的聲明方式。Interface中聲明的方法必須在實現(xiàn)該接口的類中實現(xiàn)并提供其具體實現(xiàn)。在本文中,我們將使用舉例的方式來說明如何在PHP中使用Interface
假設(shè)我們有多個類都需要實現(xiàn)一個名為"UserInfo"的接口,且這些類中包含的方法也都相同。使用Interface可以使我們不必再每個類中都聲明一遍這些方法,而可以通過聲明一個接口來實現(xiàn)。
interface UserInfo { public function getName(); public function getEmail(); } class User implements UserInfo{ private $name; private $email; public function __construct($name, $email) { $this->name = $name; $this->email = $email; } public function getName() { return $this->name; } public function getEmail() { return $this->email; } }
上面的代碼中,我們先聲明了一個"UserInfo"接口,包含了"getName"和"getEmail"兩個方法。接下來,我們通過"implements"關(guān)鍵字來實現(xiàn)接口。
在"User"類中,我們先聲明了兩個私有屬性"name"和"email"。通過構(gòu)造函數(shù),我們初始化了這兩個屬性。接著,我們在類中重新定義了兩個方法"getName"和"getEmail",實現(xiàn)了"UserInfo"接口中聲明的兩個方法。
接下來,我們再來看看另一個類"Student",它同樣需要實現(xiàn)"UserInfo"接口。
class Student implements UserInfo { private $name; private $email; public function __construct($name, $email){ $this->name = $name; $this->email = $email; } public function getName() { return $this->name; } public function getEmail() { return $this->email; } }
我們可以看到,在"Student"類中,我們同樣實現(xiàn)了"getName"和"getEmail"兩個方法,這樣我們就不必在每個類中都聲明一遍這些方法。
上面的例子中,我們只聲明了兩個方法,實際上一個接口中可以包含多個方法。并且,使用Interface能夠便于對程序進行解耦,增加程序的可維護性。
總結(jié)一下,使用Interface可以讓我們定義一組規(guī)范,使得實現(xiàn)該接口的類都必須實現(xiàn)這些規(guī)范。從而使得程序的結(jié)構(gòu)更加清晰,增加程序的可維護性。在PHP中,使用Interface十分方便,只需要通過"interface"關(guān)鍵字聲明接口,并通過"implements"關(guān)鍵字實現(xiàn)即可。