著者: Luis Argerich 翻訳者: limodou データ ストレージにクラスを使用する PHP と OOP の非常に優れた点の 1 つは、何かを操作するクラスを簡単に定義でき、いつでも対応するクラスを呼び出すことができることです。ユーザーが製品 ID 番号を選択して製品を選択できる HTML フォームがあるとします。データベースに製品情報があり、その製品とその価格などを表示したいとします。さまざまなタイプの製品があり、同じアクションが製品ごとに異なる意味を持つ場合があります。たとえば、サウンドを表示するということは、そのサウンドを再生することを意味する場合がありますが、他の種類の製品の場合は、データベースに保存されている画像を表示することを意味する場合があります。 OOP または PHP を使用すると、コーディングを削減し、品質を向上させることができます。製品のクラスを定義し、それに必要なメソッド (表示など) を定義してから、製品クラス (SoundItem クラス、 ViewableItem クラスなど) を使用して、製品クラスのメソッドをオーバーライドして、必要に応じて動作させます。 データベース内の各製品のタイプ フィールドに従ってクラスに名前を付けます。一般的な製品テーブルには (ID、タイプ、価格、説明などのフィールド) が含まれます。その後、処理スクリプトでデータベースからクラスを取得できます。から type 値を取得し、type という名前のオブジェクトをインスタンス化します。 ---------------------------------- -- ---------------- アクション() ?>--------------- ------ ------------------------ これは PHP の非常に優れた機能です $obj の表示メソッドを呼び出すことができます。オブジェクトのタイプや他のメソッドは考慮しません。この手法を使用すると、新しいタイプのオブジェクトを追加するためにスクリプトを変更する必要はなく、それを処理するクラスを追加するだけで済みます。 この関数は非常に強力です。すべてのオブジェクトの型を考慮せずにメソッドを定義し、それらを異なるメソッドの異なるクラスに実装して、任意のオブジェクトのメイン スクリプトで使用します。2 人のプログラマが必要です。ただ幸せです。 プログラミングは簡単で、メンテナンスは安価で、再利用可能であることに同意しますか? プログラマーのグループを管理する場合、各人がオブジェクトの種類とそれを処理するクラスを担当することができ、作業を分散することが非常に簡単になります。 ユーザーが選択した言語分野に応じて対応するクラスを適用するだけで、この技術を通じて国際化を実現できます。 コピーとクローン $obj のオブジェクトを作成する場合、$obj2=$obj によってオブジェクトをコピーできます。新しいオブジェクトは $obj のコピー (参照ではありません) なので、その時点の $obj の状態になります。 。場合によっては、これを実行したくない場合もあります。obj クラスのような新しいオブジェクトを生成したい場合は、 new ステートメントを使用してクラスのコンストラクターを呼び出すことができます。これは、PHP でもシリアル化と基本クラスを通じて実現できますが、他のすべてのクラスは基本クラスから派生する必要があります。 危険ゾーンへの突入 オブジェクトをシリアル化すると、何らかの形式で文字列が得られ、興味があればそれを調べることができます。文字列にはクラスの名前があり (素晴らしい!)、次のように入力できます。次のように取り出します。 ------------------------------------------- ----- -------- ----------------------------------- ----- ----------- したがって、「Universe」クラスを作成し、すべてのクラスを強制的にユニバースから拡張すると仮定すると、次のようにユニバースでクローン メソッドを定義できます。 ------------------------------------------------- クローン(); ?>-------------------------------------------- -- -------- 取得するのは、新しい Something クラス オブジェクトです。これは、new メソッドを使用してコンストラクターを呼び出して作成されたオブジェクトと同じです。これが役に立つかどうかはわかりませんが、経験則として、ユニバース クラスは派生クラスの名前を知っていると考えてください。限界があるのは想像力だけです。 注: 私は PHP4 を使用していますが、私が書いたものの一部は PHP3 では動作しない可能性があります。