PHP インターフェース
##インターフェース (インターフェース) を使用すると、特定のクラスが実装する必要があるメソッドを指定できます。ただし、これらのメソッドの具体的な内容を定義する必要はありません。
インターフェースは、標準クラスの定義と同様に、interface キーワードを使用して定義されますが、その中で定義されているメソッドはすべて空です。
インターフェースで定義されたすべてのメソッドはパブリックである必要があります。これはインターフェースの特性です。 (推奨学習: PHP プログラミングの入門から習熟まで )
実装 (実装)
インターフェイスを実装するには、実装を使用します。操作記号。クラスは、インターフェイスで定義されているすべてのメソッドを実装する必要があります。実装しない場合は、致命的なエラーが報告されます。クラスは複数のインターフェイスを実装できます。複数のインターフェイスの名前を区切るにはカンマを使用します。注:
複数のインターフェイスを実装する場合、インターフェイス内のメソッドに同じ名前を付けることはできません。注:
extends 演算子を使用してインターフェイスを継承することもできます。注:
インターフェイスを実装するには、クラスはインターフェイスで定義されているメソッドとまったく同じメソッドを使用する必要があります。そうしないと、致命的なエラーが発生します。インターフェイス インスタンス
<?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 中国語 Web サイトの他の関連記事を参照してください。