PHPチュートリアル

PHPホーム PHPイントロ PHPインストール PHP構文 PHPコメント PHP変数 PHPエコー/印刷 PHPデータ型 PHP文字列 PHP番号 PHP数学 PHP定数 PHP演算子 PHP If ... Else ... Elseif PHPスイッチ PHPループ PHP関数 PHP配列 PHPスーパーグローバル PHP正規表現

PHPフォーム

PHPフォーム処理 PHPフォームの検証 PHPフォームが必要 PHPフォームのURL / Eメール PHPフォームの完了

PHP Advanced

PHPの日付と時刻 PHPインクルード PHPファイルの処理 PHPファイルのオープン/読み取り PHPファイルの作成/書き込み PHPファイルのアップロード PHPクッキー PHPセッション PHPフィルター PHPフィルターアドバンスト PHPコールバック関数 PHP JSON PHPの例外

PHPOOP _

PHPOOPとは PHPクラス/オブジェクト PHPコンストラクター PHPデストラクタ PHPアクセス修飾子 PHPの継承 PHP定数 PHP抽象クラス PHPインターフェース PHPの特性 PHP静的メソッド PHPの静的プロパティ PHP名前空間 PHPIterables

MySQLデータベース

MySQLデータベース MySQLコネクト MySQL Create DB MySQLテーブルの作成 MySQLの挿入データ MySQLは最後のIDを取得します MySQL Insert Multiple MySQLを準備しました MySQL Select Data MySQL Where MySQL Order By MySQLデータの削除 MySQLアップデートデータ MySQL制限データ

PHP XML

PHPXMLパーサー PHPSimpleXMLパーサー PHPSimpleXML-取得 PHP XMLExpat PHP XML DOM

PHP -AJAX

AJAXイントロ AJAX PHP AJAXデータベース AJAX XML AJAXライブ検索 AJAXポール

PHPの

PHPの例 PHPコンパイラ PHPクイズ PHP演習 PHP証明書

PHPリファレンス

PHPの概要 PHP配列 PHPカレンダー PHPの日付 PHPディレクトリ PHPエラー PHP例外 PHPファイルシステム PHPフィルター PHP FTP PHP JSON PHPキーワード PHP Libxml PHPメール PHP数学 PHPその他 PHP MySQLi PHPネットワーク PHP出力制御 PHP正規表現 PHP SimpleXML PHPストリーム PHP文字列 PHP変数の処理 PHPXMLパーサー PHP Zip PHPタイムゾーン

PHPOOP-インターフェース


PHP-インターフェースとは何ですか?

インターフェイスを使用すると、クラスが実装するメソッドを指定できます。

インターフェイスを使用すると、さまざまな異なるクラスを同じように簡単に使用できます。1つ以上のクラスが同じインターフェースを使用する場合、それは「ポリモーフィズム」と呼ばれます。

インターフェイスは次のinterfaceキーワードで宣言されます。

構文

<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

PHP-インターフェースと抽象クラス

インターフェイスは抽象クラスに似ています。インターフェイスと抽象クラスの違いは次のとおりです。

  • インターフェイスはプロパティを持つことができませんが、抽象クラスはプロパティを持つことができます
  • すべてのインターフェイスメソッドはパブリックである必要がありますが、抽象クラスメソッドはパブリックまたは保護されています
  • インターフェイスのすべてのメソッドは抽象であるため、コードで実装することはできず、abstractキーワードは必要ありません。
  • クラスは、同時に別のクラスから継承しながらインターフェイスを実装できます

PHP-インターフェースの使用

インターフェイスを実装するには、クラスで implementsキーワードを使用する必要があります。

インターフェイスを実装するクラスは、インターフェイスのすべてのメソッドを実装する必要があります。

<?php
interface Animal {
  public function makeSound();
}

class Cat implements Animal {
  public function makeSound() {
    echo "Meow";
  }
}

$animal = new Cat();
$animal->makeSound();
?>

上記の例から、動物のグループを管理するソフトウェアを作成するとします。すべての動物が実行できるアクションがありますが、各動物は独自の方法でそれを実行します。

インターフェイスを使用すると、各動物の動作が異なっていても、すべての動物で機能するコードを記述できます。

<?php
// Interface definition
interface Animal {
  public function makeSound();
}

// Class definitions
class Cat implements Animal {
  public function makeSound() {
    echo " Meow ";
  }
}

class Dog implements Animal {
  public function makeSound() {
    echo " Bark ";
  }
}

class Mouse implements Animal {
  public function makeSound() {
    echo " Squeak ";
  }
}

// Create a list of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new Mouse();
$animals = array($cat, $dog, $mouse);

// Tell the animals to make a sound
foreach($animals as $animal) {
  $animal->makeSound();
}
?>

例の説明

Cat、Dog、Mouseはすべて、Animalインターフェイスを実装するクラスです。つまり、これらはすべて、makeSound()メソッドを使用してサウンドを作成できます。このため、それぞれの動物の種類がわからなくても、すべての動物をループして音を出すように指示することができます。

インターフェイスはクラスにメソッドの実装方法を指示しないため、各動物は独自の方法で音を出すことができます。