クラス
クラスを定義する
クラスは、プロパティ(メンバ変数)とメソッド(関数)から構成されます。
クラスの定義には、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}です。"; ?>