オーバーロード (オーバーライドとは異なります) は PHP ではサポートされていません。 OOP では、メソッドをオーバーロードして、名前は同じでパラメータの数や型が (言語に応じて) 異なる 2 つ以上のメソッドを実装できます。 PHP は型付けが緩い言語であるため、型によるオーバーロードは機能しませんが、異なる数のパラメーターによるオーバーロードも機能しません。
場合によっては、OOP でコンストラクターをオーバーロードして、さまざまな方法 (さまざまな数の引数を渡す) でオブジェクトを作成できるようにするとよいでしょう。 PHP でこれを行うコツは次のとおりです:
---------------------------------- - ---------------------------------------
< php
class Myclass {
function Myclass() {
$this->$name(); >//$this->name() は一般的に間違っていることに注意してください。ただし、ここで $name は呼び出されるメソッドの名前です。
}
function Myclass1($x) {
code;
}
function 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 はポリモーフィズムをサポートします。
------------------------------------------ ---------- ------------------------------------
function niceDrawing($x) {
//これは Board クラスのメソッドであると仮定します
$x->draw();
$obj=new Circle( 3,187);
$obj2=new Rectangle(4,5);
$board->niceDrawing($obj); Circle は
$board->niceDrawing($obj2);
//Rectangle の描画メソッドは
?> と呼ばれます------ ----------- -------------------------------------- ----------- ------------
PHP によるオブジェクト指向プログラミング
一部の「純粋主義者」は、PHP は真のものではないと言うかもしれません。オブジェクト指向言語です。 PHP はハイブリッド言語です。OOP または従来の手続き型プログラミングを使用できます。ただし、大規模なプロジェクトの場合は、純粋な OOP を使用して PHP でクラスを宣言し、プロジェクト内でオブジェクトとクラスのみを使用する必要がある場合があります。
プロジェクトが大きくなるにつれて、OOP コードは保守しやすく、理解しやすく、再利用しやすいので便利です。これらはソフトウェアエンジニアリングの基礎です。これらの概念を Web ベースのプロジェクトに適用することが、将来の Web サイトの成功の鍵となります。