| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
クラスクラスは、変数およびこれらの変数で動作する関数の集まりです。 変数は var で、そして関数は function で定義します。 クラスは次のような構文により定義されます。
<?php この例は、買い物カゴの中の物の連想配列と、買い物カゴにアイテムを加えたり 除いたりする二つの関数からなる Cart という名前のクラスを 定義します。 警告
複数のファイルで分割してクラスを定義することは できません。また、関数定義の内部分割されている 場合を除き、複数の PHP ブロックで分割してクラスを定義することも できません。次の例は正しく動作しません:
<?php しかし、次の例は許されます:
<?php 以下の注意書きはPHP 4に関するものです。 警告
名前stdClassは、Zendにより内部的に使用され、保 存されています。PHPでstdClassという名前のクラ スを使用することはできません。 警告
関数__sleepおよび__wakeupは、 PHPクラス内で使用される特殊な関数です。これらの関数に付随する特殊 な機能を使用する場合以外は、クラス内でこれらの名前を付けた関数を 使用することはできません。詳細な情報については、以下を参照ください。 警告
PHP は、__ で始まる全ての関数名を特殊な関数として予約しています。 ドキュメントに記載された特殊関数の機能を使用する場合以外は、__ を含む関数名を使用しないことを推奨します。 PHP 4では、変数varについては定数による初期化の みが可能です。定数以外で初期化を行う場合には初期化関数が必要です。 この初期化関数は、オブジェクトがクラスから構築される際に自動的に コールされます。このような関数はコンストラクタと呼ばれます。(以下 参照)
<?php クラスは型、つまり、実際の変数の雛型です。new演 算子により所望の型の変数を作成する必要があります。
<?php この例は、クラスCartのオブジェクト$cartおよび $another_cartを作成します。 $cartオブジェクトの関数 add_idem() で、商品番号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 を追加する」と読み変えることが可能です。
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「クラス」をGoogle検索
|