interfaceキーワード

キーワードinterfaceは、インターフェースを作成するために使用されます。インターフェースは、クラスが実装すべきメソッドを定義する特別な構造です。インターフェースには、実装を含まないメソッドの宣言のみが含まれます。インターフェースを実装するクラスは、インターフェースで宣言されたすべてのメソッドを含む必要があります。

構文

phpinterface InterfaceName {
  public function method1();
  public function method2($param);
  // ...
}

例

シンプルなインターフェースとそれを実装するクラスを作成しましょう:

php<?php
  interface Logger {
    public function log($message);
  }

  class FileLogger implements Logger {
    public function log($message) {
      echo "ファイルへのログ記録: " . $message;
    }
  }

  $logger = new FileLogger();
  $logger->log("テストメッセージ");
?>

コード実行の結果:

php'ファイルへのログ記録: テストメッセージ'

例

インターフェースは複数のメソッドを含むことができ、クラスはそれらすべてを実装する必要があります:

php<?php
  interface Shape {
    public function calculateArea();
    public function calculatePerimeter();
  }

  class Circle implements Shape {
    private $radius;
    
    public function __construct($radius) {
      $this->radius = $radius;
    }
    
    public function calculateArea() {
      return 3.14 * $this->radius * $this->radius;
    }
    
    public function calculatePerimeter() {
      return 2 * 3.14 * $this->radius;
    }
  }

  $circle = new Circle(5);
  echo "面積: " . $circle->calculateArea();
?>

コード実行の結果:

php'面積: 78.5'

関連項目

  • クラスを宣言するためのコマンドclass、
  • トレイトを宣言するためのコマンドtrait、