# Interface
* 1. キーワードを使用します:interface
* 2. クラスはオブジェクトのテンプレートであり、インターフェイスはクラス
* 3. インターフェイスを見てください。これは特別なクラスです。
* 4. インターフェイス内のメソッドは、抽象クラスと同様に、宣言されているだけで実装されていません。
* 5. のメソッドインターフェイスはパブリックであり、static
* 6 をサポートする必要があります。クラス定数 const はインターフェイス内で宣言できますが、クラスまたはサブインターフェイスによってオーバーライドすることはできません
* 7。クラス
* 8 でインターフェイスを実装するには、implements キーワードを使用します。クラスは複数のインターフェイスを実装できます。複数のインターフェイスを区切るには、コンマを使用します。インターフェイスでは、キーワード extends を使用することもできます。
* 10. クラスは複数のインターフェースを持つことができます。インターフェースを使用する場合、メソッドは同じ名前を持つことはできません。
//インターフェースを宣言します: Animal
if (!interface_exists('Animal')) { interface Animal { //接口常量 const status = 'viable'; //能存活的 //接口方法:饲养时吃什么 public function feeding($foods); } } //声明类Cat,并实现接口Animal if (interface_exists('Animal')) { class Cat implements Animal { private $name = '猫'; //在类中必须实现接口中的方法feeding() public function feeding($foods) { return $this->name.'吃'.$foods; } } } //实例化Dog类, echo (new Cat())->feeding('老鼠'); echo '<hr>'; //再定义一个接口:动物的特性 if (!interface_exists('Feature')) { interface Feature { //接口方法 public function hobby($hobby); } } //声明一个类Dog,实现了二个接口: Animal,Feature if (interface_exists('Animal') && interface_exists('Feature')) { class Dog implements Animal, Feature { private $name = '狗'; //必须实现接口Animal中的feeding()方法 public function feeding($foods) { // return $this->name.'吃'.$foods; //改成链式 echo $this->name.'吃'.$foods; return $this; } //必须实现接口Feature中的hobby()方法 public function hobby($hobby) { // return $hobby; //改成链式 echo $hobby; return $this; } } }
/ /Dog クラスをインスタンス化します
echo (new Dog())->feeding('肉'); echo (new Dog())->hobby('忠诚,勇敢,不离不弃~~');
//上記 2 つを組み合わせる方法を考えてください。メソッド呼び出しをチェーンに変更しますか?
//注: 最初に上記のインスタンス化呼び出しステートメントをコメントアウトします。それ以外の場合は、コメントアウトしてください。次のチェーンコールは有効になりません
(new Dog)->feeding('骨头')->hobby(',可爱,温顺,听话~~');
以上がPHPのインターフェースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。