トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

クラス_PHP

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).'円です。<br>');

これを実行すると、

鉛筆(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).'円です。<br>');

これを実行すると、以下のように出力されます。

消しゴム(98円)を5つ購入したときの合計金額は514.5円です。

このほか、クラスの継承も実現可能です。そこはまだ掘ってないのでまた今度。

Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.