トップページ >  PHP >  クラスのメンバ変数
初版2013/05/22: 最終更新日2013/05/22
クラスのメンバ変数
目次
クラスのメンバ変数
親クラスのメンバ変数を子クラスから使用する
クラスのメンバ変数
PHPのクラスにはメンバ変数という変数が指定できますが、少し制限があります。
以下、sampleクラスです。

<?php
    class sample01{
        var $tm = 60 * 60 * 24;

        function msg(){
            echo $this->tm;
        }
    }
?>

実行すると、Parse error: syntax error, unexpected '*', expecting ',' or ';'というエラーが発生します。
クラスのメンバ変数には演算子は使えません。また、以下のようにメンバ変数に関数の戻り値を代入してみます。

<?php
    class sample01{
        var $tm = date("Y/m/d H:i:s");

        function msg(){
            echo $this->tm;
        }
    }
?>

実行すると、Parse error: syntax error, unexpected '(', expecting ',' or ';'というエラーが発生します。
メンバ変数に関数を使用することはできません。ちなみに配列は格納できるようです。以下、ソース例です。

<?php
    class sample02{
        var $msg = array("test1","test2");
        // コンストラクタ
        function sample02(){
            print_r($this->msg);
        }
    }

    $a = new sample02();
?>

以下、実行例です。



親クラスのメンバ変数を子クラスから使用する
親クラスのメンバ変数やメンバ関数を子クラスから実行するには、parent::を使用します。
継承にはextendsキーワードを使用します。以下、ソース例です。

<?php
    class sample03{
        var $msg = "test";
        function print_out(){
            print_r($this->msg);
        }
    }

    class sample04 extends sample03{
        function prints(){
            parent::print_out();
        }
    }

    $a = new sample04();
    $a->prints();
?>

以下、実行例です。

test