オーバーロード (オーバーライドとは異なり) は PHP ではサポートされていません。 OOP では、メソッドをオーバーロードして、名前は同じでパラメータの数やタイプが異なる 2 つ以上のメソッド (言語に応じて) を実装できます。 PHP は型付けが緩い言語であるため、型によるオーバーロードは機能しませんが、異なる数のパラメーターによるオーバーロードも機能しません。 場合によっては、OOP でコンストラクターをオーバーロードして、さまざまな方法 (さまざまな数の引数を渡す) でオブジェクトを作成できるようにすると良い場合があります。 PHP でこれを行うコツは次のとおりです: -------------------------------------- ------------ $name(); //$this->name() は一般的に間違っていることに注意してください。ただし、ここで $name は呼び出されるメソッドの名前です。} function Myclass1 ( $x) { コード; } 関数 Myclass2($x,$y) { コード; - ------------------------ このクラスの使用は、クラス内の追加処理を通じてユーザーに透過的に行われます: $obj1=new Myclass(1) ; //Myclass1 が呼び出されます $obj2=new Myclass(1,2); //Myclass2 が呼び出されます これは非常に便利な場合があります。 ポリモーフィズム ポリモーフィズムはオブジェクトの機能であり、実行時に渡されたオブジェクト パラメータに基づいてどのオブジェクト メソッドを呼び出すかを決定できます。たとえば、Figure クラスがある場合は、draw メソッドを定義します。そして、Circle クラスと Rectangle クラスを派生させ、派生クラスでdraw メソッドをオーバーライドし、パラメーター x を予期し、$x->draw() を呼び出すことができる関数を持つこともできます。ポリモーフィズムがある場合、どの描画メソッドが呼び出されるかは、関数に渡すオブジェクトのタイプによって異なります。 ポリモーフィズムは、PHP のようなインタープリター型言語では非常に重要です (C++ コンパイラーがこのようなコードを生成すると想像してください。どのメソッドを呼び出す必要がありますか? また、オブジェクトのタイプもわかりません。まあ、それは重要ではありません) 簡単で自然。したがって、当然のことながら、PHP はポリモーフィズムをサポートします。 -------------------------------------------------- --- draw(); } $obj=new Circle(3,187); $board->niceDrawing($obj); //Circle の描画メソッドが呼び出されます。 board- >niceDrawing($obj2); //Rectangle の描画メソッドが呼び出されます?>---------------------------- ---- ------------------ PHP によるオブジェクト指向プログラミング 一部の「純粋主義者」は、PHP は真のオブジェクト指向言語ではないと言うかもしれませんが、これは真実です。 PHP はハイブリッド言語です。OOP または従来の手続き型プログラミングを使用できます。ただし、大規模なプロジェクトの場合は、純粋な OOP を使用して PHP でクラスを宣言し、プロジェクト内でオブジェクトとクラスのみを使用する必要がある場合があります。 プロジェクトが大きくなるにつれて、OOP コードは保守しやすく、理解しやすく、再利用しやすいので便利です。これらはソフトウェアエンジニアリングの基礎です。これらの概念を Web ベースのプロジェクトに適用することが、将来の Web サイトの成功の鍵となります。