1. ホーム
  2. php

[解決済み】トレイトとインターフェイスの比較

2022-03-25 14:42:09

質問

最近、PHPの勉強をしようとしているのですが、traitにこだわっています。コードの水平方向の再利用や、必ずしも抽象クラスを継承したくないという考え方は理解できます。しかし、traitとinterfaceの決定的な違いは何でしょうか?

このような場合、どちらを使うべきかを説明したまともなブログ記事や記事を探してみたのですが、これまで見つけた例は、同じようなものばかりでした。

どのように解決するのか?

インターフェイスは、実装するクラスが持つ一連のメソッドを定義するものです。 が必要です。 を実装します。

ある特質が use メソッドの実装も一緒に来る--これは Interface .

そこが一番大きな違いです。

より PHP RFCの水平方向の再利用 :

Traitsは、PHPのような単一継承言語においてコードを再利用するための機構です。Trait は、単一継承の制限を減らすことを目的としており、 開発者がメソッドのセットを、異なるクラス階層にある複数の独立したクラスで 自由に再利用できるようにします。