|
||||||||||||||
|
|
第 13章クラスとオブジェクトクラスクラスは、変数およびこれらの変数で動作する関数の集まりです。 クラスは次のような構文により定義されます。
この例は、買い物カゴの中の物の連想配列と、買い物カゴにアイテムを加えたり 除いたりする二つの関数からなる Cart という名前のクラスを 定義します。
以下の注意書きはPHP 4に関するものです。
PHP 4では、変数varについては定数による初期化の みが可能です。定数以外で初期化を行う場合には初期化関数が必要です。 この初期化関数は、オブジェクトがクラスから構築される際に自動的に コールされます。このような関数はコンストラクタと呼ばれます。(以下 参照)
クラスは型、つまり、実際の変数の雛型です。new演 算子により所望の型の変数を作成する必要があります。
この例は、クラスCartのオブジェクト$cartおよび $another_cartを作成します。 $cartオブジェクトの関数 add_item()が商品番号10の商品一つが カートに追加されています。商品番号0815の商品3つが$another_cart に追加されています。 $cartと$another_cartは共に関数 add_item()、 remove_item() と変数items を有しています。これらは、異なる関数およ び変数です。オブジェクトは、ファイルシステムのディレクトリに似たよ うなものであると考えられます。ファイルシステムでは、別のディレクト リに置く限り、二つの異なるREADME.TXTを保持することが可能です。ディ レクトリではトップディレクトリから各ファイルにアクセスするには、フ ルパス名を入力する必要がありますが、これと全く同様にコールしたい関 数の完全な名前を指定する必要があります。PHPの用語では、最上位のディ レクトリはグローバル名前空間であり、パス名のセパレータは、-> となります。つまり、$cart->items と $another_cart->items は、 二つの異なる変数です。$cart->itemsという名前の変数は、 $cart->$itemsではない、つまり、 PHPの変数名はドル記号を一つだけ 有することに注意して下さい。
クラス定義の内部では、プログラムでアクセス可能なオブジェクト名を知 ることはできません。Cartクラスが書かれている時点では、そのオブジェ クトが後で$cartという名前となるか $another_cartとなるかはわかり ません。つまり、Cartクラスの中では$cart->itemsと書くことは できないのです。代わりに、クラスの中からそのクラス内の関数や変数にア クセスするために、疑似変数$thisを使用することが可能です。 $thisは、「自分自身の」または「カレントのオブジェクト」と 読み変えることができます。つまり、 '$this->items[$artnr] += $num' は、 「同じクラス内の配列 items の$artnrカウンタに $numを追加する」または「カレントオブジェクト内の配列 items の $artnr カウンタに $num を 追加する」と読み変えることが可能です。
| |||||||||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "PHP マニュアル". See Index Page for more info about Authorship and Copyright. 1999-2010 Linuxinfor.com. No rights reserved. |