クラス

多くの変数や関数をひとまとめにした方が便利な場合があります。

例えば、ある人の

  • 名前
  • 体重
  • 身長

などをまとめて情報とまとめて、後で

  • 「名前、体重、身長」

と出力する関数を付け加えると便利です。

 

PHPでは、変数や関数をまとめたものがありクラスといいます。

ここでは、このクラスを実際に使いながら解説していきます。

 

クラスの定義の仕方は以下のようになります。

class クラス名{
    var $プロパティ1;
    var $プロパティ2;
    …
    function クラス名(値){
        コンストラクタの命令
    }
    function メソッド名1(値){
        メソッド1の命令
    }
    function メソッド名2(値){
        メソッド2の命令
    }
    …
}

クラスでは、

  1. 変数をプロパティ
  2. 関数をメソッド

と呼ぶので覚えておきましょう。

上記の構文のように複数のプロパティとメソッドをもったクラスを作成できます。

また、クラスのはじめに実行されるメソッドをコンストラクタといいます。

コンストラクタは、クラス名と同じ名前のメソッドとして定義します。

 

そして、実行したい場合は

$オブジェクト名=new クラス名(値);

$オブジェクト名->プロパティ1=代入する値;
$オブジェクト名->メソッド1(値);

とします。クラスから作成されたものをオブジェクトといいます。

このオブジェクト内のプロパティやメソッドを利用できます。

 

試しにクラスを使ってみましょう。

以下がプログラムの例です。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>クラスを使う</title>
</head>
<body>
<?php 
//クラス********************
class Data{
    var $name;    //名前
    var $taiju;    //体重
    //コンストラクタ
    function Data($name,$taiju){
        $this--->name=$name;
        $this->taiju=$taiju;
    }
    //名前と体重を表示する
    function Show(){
        echo '名前:'.$this->name.','.$this->taiju.'kg<br />';
    }
}
//メインの処理****************
$a=new Data('山田太郎',43);
$a->Show();
$a->name='山本二郎';
$a->taiju=76;
$a->Show();
?>
</body>
</html>

プログラムを実行すると以下のように表示されます。

名前:山田太郎,43kg
名前:山本二郎,76kg

11行目と12行目で名前$nameと体重$taijuの変数を定義しています。

    var $name;    //名前
    var $taiju;    //体重

 

そして、Showという関数で名前と体重を表示します。

    //名前と体重を表示する
    function Show(){
        echo '名前:'.$this->name.','.$this->taiju.'kg<br />';
    }

 

13行目にコンストラクタがあります。

    //コンストラクタ
    function Data($name,$taiju){
        $this--->name=$name;
        $this->taiju=$taiju;
    }

コンストラクタとはクラスの初期化を行う関数です。

クラスが導出されるとまずコンストラクタが起動します。

 

ここでは24行目にクラスを導出され、コンストラクタが起動します。

$a=new Data('山田太郎',43);

初期値としては「山田太郎」と「43」が入ります。

そして、25行目

$a->Show();

で名前と体重を表示させるので

名前:山田太郎,43kg

が表示されます。

 

その後、「山本二郎」と「76」に更新されて

$a->name='山本二郎';
$a->taiju=76;

表示命令Show

$a->Show();

により

名前:山本二郎,76kg

が表示されます。

 

以上のようにクラスは変数と関数をまとめることができて便利です。

ぜひ使えるようになってプログラミングに役立ててくださいね。

著者:安井 真人(やすい まさと)