クラスのまとめ

クラス

クラスとは、変数群(メンバ変数)と、関数群(メンバ関数)を、さらに1つのデータとしてまとめたものです。

  • 1つのファイルにつき、1つのクラス
  • プログラム内では1つの型としてみなされる

メリット

  • 関連するデータをまとめる
  • まとめたデータと、ロジックをワンセットにする
<?php

class クラス名
{
    //メンバ変数(プロパティ)
    var $name;
    var $blog_title;
    var $contents;
    var $create_date;

    //コンストラクタ(初期化を行う)
    function クラス名($name, $title, $contents, $date)
    {
        //メンバ変数へのアクセス($this->変数名)
        $this->name = $name;
        $this->blog_title = $title;
        $this->contents = $contens;
        $this->create_date = $date;
    }

    //メンバ関数
    function 関数名()
    {
        return $this->name;
    }
}
  • メンバ変数

クラスに属する変数としてメンバ変数があり、明示的にvar 変数名;の形で宣言しなければなりません。

クラスに属する関数としてメンバ関数があり、定義は通常の関数と同じです。

  • コンストラクタ
    • 関数名がクラス名と一致する
    • クラスのデータを初期化するための関数
    • 戻り値はない


クラス内で関数や変数にアクセスする際は、$this->変数$this->関数とします。



インスタンス

インスタンス化とは、データを初期化し、実際に使えるようにした状態です。

例)
$a = 'hello';

上記の場合、'hello'という文字列(クラス)のデータをインスタンス化して$aに代入(オブジェクトを作る)しています。

new

new クラス名(コンストラクタの引数);

<?php

$a = new Phone("iPhone","6");

//Phoneクラスがバージョン取得関数を定義しているとする
$version = $a->getVer();



継承

継承とは、既存クラスを継承することです。

<?php

// class サブクラス(新規)extends スーパークラス(既存)

class iPhone extends Mobile
{
    メンバ変数
    メンバ関数
}

サブクラスは、スーパークラスのメンバをすべて受け継ぎます。スーパークラスには共通機能を、サブクラスにはサブクラスでしか使わない機能を作成します。

クラスの利用
<?php

class クラス名
{
    //メンバ変数(プロパティ)
    var $name;
    var $blog_title;
    var $contents;
    var $create_date;

    //コンストラクタ(初期化を行う)
    function クラス名($name, $title, $contents, $date)
    {
        //メンバ変数へのアクセス($this->変数名)
        $this->name = $name;
        $this->blog_title = $title;
        $this->contents = $contens;
        $this->create_date = $date;
    }

    //メンバ関数
    function getName()
    {
        return $this->name;
    }
    function getTitle()
    {
        return $this->blog_title;
    }
    function contents()
    {
        if (empty($contents)
        {
            echo "no contentst";
        }
    }
}

//インスタンス化
$a = new クラス名("okamoto","クラスについて","クラス",date($date));