PHP介面
#使用介面(interface),可以指定某個類別必須實作哪些方法,但不需要定義這些方法的具體內容。
介面是透過 interface 關鍵字來定義的,就像定義一個標準的類別一樣,但其中定義所有的方法都是空的。
介面中定義的所有方法都必須是公有,這是介面的特性。 (推薦學習:PHP程式設計從入門到精通)
實作(implements)
要實作一個接口,使用implements 運算符。類別中必須實作介面中定義的所有方法,否則會報一個致命錯誤。類別可以實作多個接口,用逗號來分隔多個接口的名稱。
Note:
實作多個介面時,介面中的方法不能有重名。
Note:
介面也可以繼承,透過使用 extends 運算元。
Note:
類別要實作接口,必須使用和介面中所定義的方法完全一致的方式。否則會導致致命錯誤。
介面實例
<?php // 声明一个'iTemplate'接口 interface iTemplate { public function setVariable($name, $var); public function getHtml($template); } // 实现接口 // 下面的写法是正确的 class Template implements iTemplate { private $vars = array(); public function setVariable($name, $var) { $this->vars[$name] = $var; } public function getHtml($template) { foreach($this->vars as $name => $value) { $template = str_replace('{' . $name . '}', $value, $template); } return $template; } } // 下面的写法是错误的,会报错,因为没有实现 getHtml(): // Fatal error: Class BadTemplate contains 1 abstract methods // and must therefore be declared abstract (iTemplate::getHtml) class BadTemplate implements iTemplate { private $vars = array(); public function setVariable($name, $var) { $this->vars[$name] = $var; } } ?>
以上是php什麼是接口的詳細內容。更多資訊請關注PHP中文網其他相關文章!