PHP のオブジェクト指向プログラミング: 大規模 PHP プロジェクトの開発方法 (2) 著者: Luis Argerich 翻訳者: limodou 「Another」クラスのオブジェクトには、親クラス (Something) のすべてのデータ メンバーとメソッドが含まれています。独自のデータ メンバーとメソッドも追加します。 $obj2=new Something; $obj2->setX(6); $obj2->setY(7); を使用できます。PHP はまだ多重継承をサポートしていないため、2 つ以上のクラスから新しいものを派生することはできません。 派生クラスでメソッドを再定義できます。「Another」クラスで getX メソッドを再定義すると、「Something」で getX メソッドを使用できなくなります。派生クラスで基本クラスと同じ名前のデータ メンバーを宣言すると、それを扱うときに基本クラスのデータ メンバーが「隠蔽」されます。 クラス内でコンストラクターを定義できます。コンストラクターはクラス名と同じ名前のメソッドで、クラスのオブジェクトを作成するときに呼び出されます。たとえば、次のようになります。 ---------------------------------------------------- ---- ----- x=$y; } 関数 setX($v) { $this->x=$v; } 関数 getX() { return $this->x; } ?>- ---------------------------------------------------- ---- ------------------------ したがって、次のようにしてオブジェクトを作成できます。 $obj=new Something(6);自動的に配置 6 データ変数 x に値を代入します。コンストラクターとメソッドは通常の PHP 関数であるため、デフォルトのパラメーターを使用できます。 function Something($x="3",$y="5") 次に、 $obj=new Something() // x=3 および y=5 $obj=new Something(8); and y=5 $obj=new Something(8,9); // x=8 and y=9 デフォルトパラメータはC++メソッドを使用するため、Yの値を無視してXにデフォルトパラメータを与えることはできません。値は左から右に割り当てられます。渡されたパラメータが必要なパラメータより小さい場合は、デフォルトのパラメータが使用されます。 派生クラスのオブジェクトが作成されると、そのコンストラクターのみが呼び出され、親クラスのコンストラクターは呼び出されません。基本クラスのコンストラクターを呼び出したい場合は、派生クラスのコンストラクターで明示的に呼び出す必要があります。クラス。これが可能なのは、すべての親クラスのメソッドが派生クラスで使用できるためです。 -------------------------------------------------- ----------------------------- y=5; $this->Something(); //base への呼び出しを表示します。クラス コンストラクター Function} ?>------------------------------------------ ----- ---------------------------------- OOP の優れたメカニズムは、抽象クラスの使用です。 。抽象クラスはインスタンス化できず、派生クラスへのインターフェイスのみを提供できます。設計者は多くの場合、抽象クラスを使用してプログラマに基本クラスからの派生を強制し、新しいクラスに必要な機能が確実に含まれるようにします。 PHP には標準メソッドはありませんが、この機能が必要な場合は、基本クラスを定義し、そのコンストラクターの後に「die」呼び出しを追加して、基本クラスがインスタンス化できないようにすることができます。ここで「die」ステートメントを追加します。各メソッド (インターフェイス) の後で、プログラマが派生クラスのメソッドをオーバーライドしないと、エラーが発生します。また、PHP は型指定されていないため、オブジェクトが基底クラスからの派生クラスであることを確認し、クラスの ID を定義する (ある種の識別 ID を返す) メソッドを基底クラスに追加する必要がある場合があります。オブジェクトパラメータを受け取るときにこの値を確認してください。もちろん、邪悪なプログラマーが派生クラスでこのメソッドをオーバーライドした場合、このメソッドは機能しませんが、一般に問題は邪悪なプログラマーではなく怠惰なプログラマーに見られます。 もちろん、プログラマーには基本クラスが見えないようにしておくと便利です。プログラマーはインターフェイスを出力して仕事をするだけです。 PHP にはデストラクターがありません。 PHPBuilder.com より転載