PHPのインターフェース| PHPOOPインターフェース
公開: 2021-03-03目次
序章
PHPはオブジェクト指向言語であり、インターフェースはオブジェクト指向プログラミング言語の主要な機能の1つです。 このインターフェースにより、コーダーは、そのインターフェースを実装するクラス内のさまざまな定義を含む関数を宣言できます。 PHPのインターフェースを理解するために読んでください。 また、この記事で共有されているPHPのインターフェースの例を読んで、理解を深めてください。
PHPのインターフェース
インターフェイスは、実装なしで関数を作成できるオブジェクト指向プログラミングの機能です。 実装はクラスに含まれている必要があります。 インターフェイスを継承する各クラスは必要に応じて異なる実装を持つことができるため、メソッド定義の複雑さを防ぐのに役立ちます。 PHPでのインターフェースの使用法はクラスと似ていますが、インターフェースの関数に実装が存在しないことと、インターフェースに変数がないことだけが異なります。
PHPのインターフェースの機能
- インターフェイスにコードが含まれていません。
- インターフェイスには、引数の有無にかかわらずメソッドの宣言がありますが、定義はありません。
- インターフェイスを実装しているクラスには、インターフェイスで宣言されているすべてのメソッドの定義が含まれている必要があります。
- クラスは、複数のインターフェースを実装できます。
- インターフェイスに非抽象メソッドを含めることはできません。
インターフェイスの構文
インターフェイスは、使用する前に宣言する必要があります。 インターフェイスの構文はクラスの構文と似ていますが、唯一の違いは、インターフェイスの宣言時にclassキーワードの代わりにinterfaceキーワードが使用されることです。 以下は、 PHPでインターフェースを宣言するための構文です。
<?php
// PHPでのインターフェースの宣言
インターフェイス<インターフェイス名>
{{
//コード
}
?>
インターフェイス内で宣言されたメソッドは、クラスごとにインターフェイスを継承することでアクセスできます。 クラスは、クラスを宣言するときにimplementsキーワードを使用してPHPのインターフェイスを継承します。
以下は、 PHPでインターフェースを実装するための構文です。
<?php
//クラスの宣言
クラス<クラス名>は<インターフェース名>を実装します
{{
//コード
}
?>
PHPのインターフェース例
インターフェイスの使用法を理解するために、以下の例を見てみましょう。
<?php
//インターフェースの宣言
インターフェイスExample_Shape
{{
パブリック関数ShapeArea();
}
//インターフェースを継承するクラス
クラスShape1はExample_Shapeを実装します
{{
パブリック関数ShapeArea()
{{
エコー'円の領域';
}
}
//インターフェースを継承するクラス
クラスShape2はExample_Shapeを実装します
{{
パブリック関数ShapeArea()
{{
エコー'正方形の領域';
}
}
//インターフェースを使用しないクラス
クラスShape3
{{
パブリック関数AreaCal()
{{
エコー'インターフェースなし';
}
}
$Obj1=新しいShape1; //class1のオブジェクト
$Obj2=新しいShape2; //class2のオブジェクト
$obj3=新しいShape3; //インターフェイスを使用しないクラス3のオブジェクト
エコー$obj1->ShapeArea();
エコー'<br>';
エコー$obj2->ShapeArea();
エコー'<br>';
エコー$obj3->AreaCal();
?>
出力
円の面積
正方形の面積
インターフェースなし
出力の説明
Shape1クラスには、インターフェイス内で宣言された関数の定義があります。 Shape1はインターフェースを実装しているため、その中の関数にアクセスして「円の面積」を出力します。 クラスShape2の説明と出力「正方形の面積」も同様です。 クラスShape3はインターフェイスを実装しておらず、PHPでは通常のクラスとして機能します。
複数のインターフェースの実装
クラスは複数のインターフェースを実装することもできます。 このような場合、クラスには、クラスが実装しているすべてのインターフェイスで宣言されているすべてのメソッドの定義が必要です。 以下は、PHPでの複数のインターフェースの実装の図です。
<?php
//インターフェースの宣言
インターフェイスの例1
{{
パブリック関数method1();
}
//別のインターフェースの宣言
インターフェイスexample2
{{
パブリック関数method2();
}
//上記で宣言された2つのインターフェースを実装するクラス
クラスclass1はexample1、example2を実装します
{{
//interface1のメソッドの定義
パブリック関数メソッド1
{{
Echo'Inside interface1 method1';
}
//interface2のメソッドの定義
パブリック関数メソッド2
{{
Echo'インターフェイス2メソッド2の内部;
}
}
Obj1=新しいクラス1;
Obj2=新しいクラス2;
Obj1-> method1;
Obj2-> method2;
?>
出力
インターフェイス1の内部method1
インターフェイス2の内部method2
複数のインターフェースの実装について注意すべき点がいくつかあります
- インターフェイスで宣言されているすべてのメソッドはパブリックである必要があります。
- 関数にキーワードabstractを含めることはできません。
- プログラマーがインターフェース関数を定義するのを忘れた場合、コードはエラーをスローします。
- インターフェイスに変数を含めることはできません。
チェックアウト: PHPでのOOPの概念
インターフェイスと抽象クラスの違い
以下は、インターフェースと抽象クラスの違いの一部です。
- インターフェイスには宣言のみが含まれますが、抽象クラスにはメソッド宣言とその定義の両方が含まれます。
- インターフェイスのメソッドはpublicのみにすることができますが、抽象クラスのメソッドはpublic、private、またはprotectedとして宣言できます。
- 1つのクラスは複数のインターフェースを実装できますが、1つのクラスは1つの抽象メソッドのみを拡張できます。
結論
PHPのインターフェースは、ユーザーが定義なしでパブリックメソッドを宣言できるようにする機能です。 この記事では、インターフェースに関するすべての情報とその構文および例について説明しました。 この記事で共有されている情報が、概念の理解に役立つことを願っています。 upGradブログで、PHPに基づいた同様のトピックを学ぶことができます。 深く理解するために、upGradでPHPのオンライン認定コースに登録できます。 upGradは、あなたのキャリアと学習に役立つ多くの証明書コースを提供しています。
フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクト、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。