クラス

クラスを定義する

クラスは、プロパティ(メンバ変数)とメソッド(関数)から構成されます。

クラスの定義には、classというキーワードを使用し、続けて定義するクラス名を指定します。クラス名を指定したら、そのクラスのプロパティ(メンバ変数)と、メソッドを定義します。

※プロパティ(メンバ変数)
クラスで表現したいオブジェクトの「パラメータ」を格納するための変数にあたります。

※メソッド(関数)
機能を実現するための関数にあたります。メソッドは一般の関数とは異なり、あくまでクラスのオブジェクトの中でのみ有効になります。

書き方例
            <?php
                // クラスsansuを定義する
                class sansu {
                    // プロパティを定義する
                    public $result;
                    // メソッドkakezanを定義する
                    public function kakezan( $number ) {
                        return $this->result = $number * 100;
                        /*
                         「$this->」は、自分自身を表し、「$this->プロパティ名」で同一クラス内からプロパティを呼び出すことができます。
                        */
                    }
                }

                // インスタンスを生成する
                $jsansu = new sansu;
                echo $jsansu->kakezan( 7 );

            ?>
        

プロパティのアクセス制限設定
修飾子説明
publicどこからでもアクセス可能
protected同一クラスおよび派生クラスからアクセス可能
private同一クラスからのみアクセス可能

インスタンスの生成と利用

作成したクラスを実行するには、インスタンスを生成しなければなりません。インスタンスを生成するには、newというキーワードを使います。

※インスタンスとは
インスタンスとは、クラスから生成されるデータ群のことです。クラスは定義が書かれているだけの雛型のようなもので、インスタンスを生成することで、実際にデータを扱うことが可能になります。

// インスタンスを生成する
$jsansu = new sansu;
上記の定義により、$jsansuがインスタンスとなります。そして、この$jsansuを使用して、クラスで定義したプロパティやメソッドを利用します。

echo $jsansu->kakezan( 7 );
つまり、kakezanメソッドを呼び出すには、自分自身を表す->という記述を用いて、上記のように記述します。

スコープ演算子

クラスは基本的に、new でオブジェクトを生成してから利用します。ですが :: (スコープ演算子)を使えば、クラスの内容に直接アクセスすることができます。

書き方例
           <?php
                //Messageクラスを作成
                class Message {
                  //メソッドを定義
                  function hello() {
                    return "こんにちは";
                  }
                }

                //Messageクラスのメソッドを実行
                $message1 = Message::hello();
                echo "message1の内容は{$message1}です。";

            ?>