私はPHPで実際にOOPスタイルを学習しようとしています。私はインターフェイスとクラスの両方を宣言し、インターフェイスを実装するクラスを持っています。しかし、私は、PHPスクリプトファイルにインターフェイスファイルをロードし、クラス実装ファイルを読み込む代わりにインターフェイスからメソッドを呼び出すことはできないのだろうかと疑問に思っていましたか?もしそうなら、それはどのように行われますか?私はこれに対する答えを見つけることができません。ありがとう!PHPインターフェイスメソッドを呼び出す
答えて
インターフェイスは実装を持たないため、できません。その目的は、(インタフェースを実装する)クラスが賞賛しなければならない "契約"( "このインタフェースを実装するクラスは公開メソッドX YとZを提供することを約束する"という意味で)を規定することです。
これは本当に基本的なOOPの基本であり、PHPには当てはまりません。あなたがさらに進歩する前に、いくつかのOOP理論を勉強することをお勧めします。
インターフェイス上でメソッドを呼び出すことはできません。インタフェースをインスタンス化することはできません。インターフェイスを実装するクラスを作成し、代わりにそのクラスを使用する必要があります。
インターフェイスは、一連の関数を記述し、実装クラス内でそれらの関数の最終実装を隠すことができるように提供されています。これにより、使用方法を変更することなく、それらの機能の実装を変更することができます。
例:データベースがあります。私は自分のデータベース内のデータにアクセスするクラスを作成したいと思います。
interface Database {
function listOrders();
function addOrder();
function removeOrder();
...
}
その後、我々は、MySQLデータベースを使用して起動するとしましょう:私はこのようなインタフェースが定義されます。したがって、MySQLデータベースにアクセスするためのクラスを作成します。
class MySqlDatabase implements Database {
function listOrders() {...
}
これらのメソッドは、MySQLデータベーステーブルに到達するために必要に応じて記述します。コントローラを作成して、インタフェースを次のように使用することができます。
$database = new MySqlDatabase();
foreach ($database->listOrders() as $order) {
次に、Oracleデータベースに移行することにします。私たちは、次のようなOracleデータベースに到達するために別のクラスを書くことができ:
class OracleDatabase implements Database {
public function listOrders() {...
}
その後 - 代わりに、我々は唯一の1行のコードを変更する必要がMySQLデータベースのOracleデータベースを使用するために私たちのアプリケーションを切り替えるには:
$database = new OracleDatabase();
ようなコードの他のすべての行、:
foreach ($database->listOrders() as $order) {
は変わりません。要点は - INTERFACEは私たちのデータベースにアクセスするために必要なメソッドを記述します。どのようにしてそれを実現するかについては説明していません。それがIMPLEMENTingクラスの機能です。我々は、必要なだけ多くの異なる方法で必要なだけ、このインターフェースを実装することができます。インタフェースが実際の動作に関係なくどのように使用するかを定義するため、インタフェースの実装間を切り替えることができます。
- 1. Javaインターフェイスメソッドの呼び出しを傍受する
- 2. .phpファイルを呼び出す
- 3. ヌルオブジェクトリファレンスでインターフェイスメソッド 'int org.ksoap2.serialization.KvmSerializable.getPropertyCount()'を呼び出そうとしました
- 4. MySQLデータベースを呼び出す関数を呼び出すPHPアプリケーションの内部サーバーエラー
- 5. AJAX経由でPHPを呼び出す
- 6. PHPでchrootを呼び出す
- 7. PythonからPHPコードを呼び出す
- 8. JavaScriptフォームを呼び出すphp
- 9. Javaアプリケーションを呼び出すPHP Webアプリケーション
- 10. PHPの関数を呼び出す
- 11. JavaからPHPメソッドを呼び出す
- 12. PHPでクラスインスタンスを「呼び出す」方法
- 13. PHP関数を呼び出すAjax
- 14. ajaxがphpファイルを呼び出す
- 15. dllでPHPを呼び出す
- 16. PHPからRPGプログラムを呼び出す
- 17. PHPからPythonスクリプトを呼び出す
- 18. phpからjqueryを呼び出す
- 19. php sshでbashスクリプトを呼び出す
- 20. ワードプレス:PHPファイルを呼び出す?
- 21. AJAXからPHPファイルを呼び出す
- 22. document.readyからPHPを呼び出す
- 23. PHPを呼び出す変数
- 24. angularJsからPHPファイルを呼び出す
- 25. iframeをPhpで呼び出す
- 26. ストアドプロシージャを呼び出した後にPHPからLAST_INSERT_ID()を呼び出す
- 27. PHP:通常のHTTP呼び出しを使わずに別のPHP Webアプリケーションを直接呼び出す
- 28. 呼び出しjqueryのFOMのPHPスクリプト
- 29. PHPのajax呼び出しのscandir
- 30. PHPプロキシサーバとJSONの呼び出し?
ありがとうございました!いや私は本からいくつかのものを読んだ後に混乱し、それが私に言いたいことだと思っていました。 LOL Imは物事を行う手続き的な方法に慣れています。 – vol4life27