!!!PHPのクラス
C++言語/Java言語のようなオブジェクト指向のプログラムを行う場合、
クラスでの機能のカプセルは必要不可欠です。
PHPでもクラスを定義・使用することができます。public/privateなどはなく、
クラス内の変数・関数はすべてpublic扱いになります。[[Flash]]のActionScriptに近いですね。
class CShopping {
var $item = '鉛筆';
var $price = 55;
function getAllPrice($cou) {
$pr = $this->price * $cou;
$tax = $pr * 0.05; //消費税 5%
return($tax + $pr);
}
}
注意点は、クラス内の変数はvarをつけて定義します(明示的に変数であることを示します)。
また、クラス内関数では「$this->price」のように$thisをつけて参照するようにします。
クラスを使用するときは、以下のように使用します。
$shop = new CShopping();
print($shop->item.'('.$shop->price.'円)を5つ購入したときの合計金額は'.$shop->getAllPrice(5).'円です。
');
これを実行すると、
鉛筆(55円)を5つ購入したときの合計金額は288.75円です。
と出力されます。
!!クラスの初期化(コンストラクタ)
クラス名と同じ名称のfunction定義を行うと、クラス生成時(newの段階)に
この部分が呼ばれます。C++/Javaと同じですね。
class CShopping {
var $item = '鉛筆';
var $price = 55;
function CShopping($item, $price) {
$this->item = $item;
$this->price = $price;
}
function getAllPrice($cou) {
$pr = $this->price * $cou;
$tax = $pr * 0.05;
return($tax + $pr);
}
}
$shop = new CShopping('消しゴム', 98);
print($shop->item.'('.$shop->price.'円)を5つ購入したときの合計金額は'.$shop->getAllPrice(5).'円です。
');
これを実行すると、以下のように出力されます。
消しゴム(98円)を5つ購入したときの合計金額は514.5円です。
このほか、クラスの継承も実現可能です。
そこはまだ掘ってないのでまた今度。