interfaceキーワード
キーワードinterfaceは、インターフェースを作成するために使用されます。インターフェースは、クラスが実装すべきメソッドを定義する特別な構造です。インターフェースには、実装を含まないメソッドの宣言のみが含まれます。インターフェースを実装するクラスは、インターフェースで宣言されたすべてのメソッドを含む必要があります。
構文
interface InterfaceName {
public function method1();
public function method2($param);
// ...
}
例
シンプルなインターフェースとそれを実装するクラスを作成しましょう:
<?php
interface Logger {
public function log($message);
}
class FileLogger implements Logger {
public function log($message) {
echo "ファイルへのログ記録: " . $message;
}
}
$logger = new FileLogger();
$logger->log("テストメッセージ");
?>
コード実行の結果:
'ファイルへのログ記録: テストメッセージ'
例
インターフェースは複数のメソッドを含むことができ、クラスはそれらすべてを実装する必要があります:
<?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();
?>
コード実行の結果:
'面積: 78.5'