目次
PHPのインターフェース(Interface)の基礎
PHPにはインターフェース(interface)という仕組みがあります。
この仕組みは少々分かりにくいですが、簡潔に説明すると、インターフェースはクラスに実装を義務付けるメソッドを定義するものです。インターフェースを実装するクラスは、そのメソッドを必ず実装しなければなりません。
例題
次の例は、自分を表現するクラスを定義し、Person
インターフェースを実装する例です。
interface Person {
public function eat();
}
class MySelf implements Person {
public function eat() {
echo "焼き鳥を食べます";
}
}
この場合、MySelf
クラスではeat
メソッドを「焼き鳥を食べます」と出力するように実装しました。他の人がPerson
インターフェースを実装する場合も、異なるeat
メソッドを実装する必要があります。
別の実装例
他の人がPerson
インターフェースを実装して、サラダを食べるクラスを作成した場合の例です。
class YourSelf implements Person {
public function eat() {
echo "サラダを食べます";
}
}
メインの処理
Main
クラスのrun
メソッドでPerson
オブジェクトを引数にして実行する例を示します。
class Main {
public function run(Person $person) {
$person->eat();
}
}
// MySelfのインスタンス化
$myself = new MySelf();
// YourSelfのインスタンス化
$yourself = new YourSelf();
$main = new Main();
// MySelfを実行する
$main->run($myself);
// YourSelfを実行する
$main->run($yourself);
このように、run
メソッドはPerson
インターフェースを実装したオブジェクトを引数に取ります。MySelf
クラスとYourSelf
クラスは異なるクラスですが、両方ともPerson
インターフェースを実装しているため、run
メソッドに渡してもエラーにはなりません。
インターフェースの利点
インターフェースを使用することで、特定のメソッドの存在が保証されるため、他のクラスやメソッドに渡す際のエラーを防ぐことができます。
設計が上手なプログラマーは、インターフェースを使って見通しの良いプログラムを作成します。良いプログラマーを目指すには、まず基本をしっかりと学ぶことが重要です。