ITHACK
~ みんなのIT部門 ~

【PHP】クラス(class) – オブジェクトの設計書

プログラミングにはクラスと呼ばれる仕組みがあります。
クラスを使うことで拡張性・柔軟性のあるプログラムを作成できるようになります。

ここではクラスについて解説します。

  • クラス

  • インスタンス

クラスとは

クラスはオブジェクトをプログラミング上で表現したモノです。
オブジェクトとはモノや事柄のことで、クラスは変数や処理を使ってオブジェクトを表現します。

多くのアプリケーション(プログラム)は、オブジェクト指向プログラミングと呼ばれる考え方で、複数のクラスを組み合わせて構築されています。

オブジェクト指向プログラミングは奥が深く、理解するには難易度が高いため、説明を割愛しますが、ここではクラスそのものについて学んでいきましょう。

インスタンスについて

クラスはオブジェクトの設計書です。
この設計書からオブジェクトを生成することができ、そのオブジェクトをインスタンスと呼びます。
※ オブジェクトとインスタンスは厳密には異なります。

イメージとしては、カレーを作る場合に近く、レシピがクラス(設計書)、レシピに沿って作られたカレーがインスタンスになります。

また、クラスからインスタンスを生成することをインスタンスの生成と呼び、1つのクラスから複数のインスタンスを作成できます。

基本構文

クラスの定義・インスタンスの生成の基本構文は次のようになります。

クラスの定義

class クラス名 {
}

インスタンスの生成

new クラス名()

サンプルコード

クラス定義とインスタンス生成のサンプルコードをご覧ください。

<?php

class Person {
    
}

$person1 = new Person();
$person2 = new Person();

var_dump($person1);
var_dump($person2);

?>
object(Person)#1 (0) {
}
object(Person)#2 (0) {
}

3~5行目で”人”を表すクラスであるPersonクラスを定義しています。
ブロック({})の中に記述はありませんが、ここに人の情報として変数や処理を記述します。
それらについては、説明を割愛しますが、ここではクラス定義の基本について覚えましょう。

そして、7行目でインスタンスを生成しています。
生成したインスタンスは変数に記憶することができ、実行結果からオブジェクト型(object)の値が記憶されていることが分かります。

8行目もインスタンスの生成をしており、1つのクラスから複数のインスタンスを生成できていることが分かります。

演習問題

問題1

次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。

  • 車クラスを作成する
  • 車クラスのインスタンスを3つ生成する
  • var_dump関数で出力する
object(Car)#1 (0) {
}
object(Car)#2 (0) {
}
object(Car)#3 (0) {
}

問題2

次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。

  • 家クラスを作成する
  • 家クラスのインスタンスを3つ生成する
  • var_dump関数で出力する
object(House)#1 (0) {
}
object(House)#2 (0) {
}
object(House)#3 (0) {
}

まとめ

クラスはオブジェクトの設計書です。
クラスからインスタンスを生成することで、その実態を値として扱えるようになります。

クラスはアプリケーションにおいて重要な役割を果たすため、覚えていきましょう。