PHP 用オブジェクト指向プログラミング: 大規模な PHP プロジェクトを開発するためのメソッド(五)
データ ストレージ クラスを使用します
PHP および OOP つまり、何かを操作するクラスを簡単に定義でき、クラスを使用したいときにいつでも対応するクラスを呼び出すことができます。 HTML
フォームがあるとします。ユーザーは製品 ID を選択することで 製品。データベースに製品情報があり、その製品とその価格などを表示したい。さまざまな種類の商品があり、同じアクション が商品ごとに異なる意味を持つ場合があります。たとえば、サウンドを表示するということは、それを再生することを意味する場合がありますが、他の種類の製品の場合は、データベースに保存されている画像を表示することを意味する場合があります。 OOP または
PHP を使用してコーディングを削減し、品質を向上させることができます:
製品クラスを定義し、それに必要なメソッド (例: 表示) を定義してから、製品 クラス
が出てきたら (SoundItem クラス、ViewableItem)
クラスなど)、製品クラスのメソッドをオーバーライドして、希望どおりに動作するようにします。
データベース内の各製品のタイプに応じてクラスに名前を付けます (type) フィールド 、典型的な製品 テーブルには (id、type、price、
説明、、およびその他のフィールド が含まれる場合があります) ) ...その後、処理スクリプトで、データベースから type 値を取得し、type
のターゲット: -------------------- -------------------------------------------------- - ---------
<
?
php $
obj
=new $type(); $obj
->action(); ?>--------------------- -- ------------------------------------------------ -- ----
これは、PHP の非常に優れた機能です。🎜> を考慮せずに < を呼び出すことができます。 $obj 表示メソッドまたはその他のメソッド。
テクニックを使用すると、新しいタイプのオブジェクトを追加するためにスクリプトを変更する必要はなく、それを処理するクラスを追加するだけです。
この関数は非常に強力です。すべてのオブジェクトの型を考慮せずにメソッドを定義し、それらを異なるクラスの異なるメソッドに実装して使用するだけです。メイン スクリプト内の任意のオブジェクトにそれらを使用できます。
if...else も必要ありません。2 人のプログラマーも必要ありません。ただ楽しいだけです。
さて、プログラミングは簡単で、メンテナンスは安価で、再利用可能であることに同意しますか?
プログラマーのグループを管理する場合、各人がオブジェクトの種類とそれを処理するクラスを担当するのは非常に簡単です。
このテクノロジーを通じて国際化を実現でき、ユーザー
が選択した言語フィールドに従って対応する クラスを適用できます。 。
コピーとクローン
$obj のオブジェクトを作成するとき、$ obj2 を渡すことができます=$obj でオブジェクトをコピーすると、新しいオブジェクトは $obj のコピーになります (🎜 ではありません) > 1 つの
1 つの リファレンス) なので、$ オブジェクトがあります は現在の状態でした。場合によっては、これは望ましくなく、obj クラス < のような を生成したいだけである場合もあります。 🎜> の新しい
オブジェクトは、new ステートメントを使用して呼び出すことができます。コンストラクター。 PHP では、シリアル化と 基本クラスを通じて実装することもできますが、
他の一部の クラスは、基本クラスから 派生する必要があります。
危険地帯に突入
連載オブジェクトを取得すると、特定の形式の文字列が得られます。興味がある場合は、それを調べることができます。文字列には <🎜 が含まれます。 >
クラスの名前 (素晴らしい!)、削除できます。次のように : ---- ------ -------------------------------------------- ------ -------------------- php
$herring=serialize( $obj);
$
vec=explode(':',$herring); $
nam=str_replace
(""", '',$vec[2]); ?>-------- ------ -------------------------------------------- ------ ----
そこで、
"Universe" のクラスを作成し、すべてのクラスを から拡張する必要があると強制するとします。ユニバース、これは ユニバース で行うことができます で clone メソッドを次のように定義します:
------------- -- ------------------------------------------------ -- --------------
php
class Universe {
function clone() {
$ herring=シリアル化($this);
$vec=explode(':',$herring);
$nam=str_replace( "" ",'',$vec[2]);
$ret=new $nam;
return $ret;
}
}
//その後
$obj=new Something()
// ユニバース
$other=$obj->clone();
から拡張>---------------------------------------------- - ----------------------------------
得られるものは新しいものですSomething クラスのオブジェクトは、new メソッドを使用してコンストラクターを呼び出して作成されたオブジェクトと同じです。 .
これが役立つかどうかはわかりますが、Universe クラスは次のことを知ることができます。派生クラスの名前は適切なものです。
PHP3 では動作しない可能性があります。