PHP基礎(7)クラス


クラスとオブジェクトの関係

クラスを理解するためにまずクラスとオブジェクトの関係を説明します。

クラスとは、オブジェクトの振る舞いを定義するクッキーの型抜き器具のようなものです。
 型抜きによって出来上がるクッキー自体がオブジェクトです。
そしてクッキーを抜く行為をインスタンス化といいます。インスタンス化はオブジェクトを生成する行為です。つまり、型抜き(クラス)は唯一のもので、出来上がるクッキー(オブジェクト)は、抜く行為(インスタンス化)によって複数個を作ることが可能です。

そしてインスタンスという言葉は、コンピュータ上で動いているクラスの実行単位という意味が含まれています。なのでオブジェクト=インスタンスと解釈することができます。同じクラスでもインスタンスはそれぞれ別々の状態を持っていることになります。同じ型抜きを使っても、焼き上がったクッキーはそれぞれ微妙に形が違うのと同じです。

さて、クラスの記述は次のとおりです。クラスは0以上の関数を持ちます。つまり関数のないクラスもあります。関数は処理ですので、このクラスで何かやらせたい処理がなければ関数はなくてもいいわけです。クラス内の関数は特にメソッドとも表現します。(関数=メソッドと解釈して問題ないです)


<?php
/* 四角クラス */
class Square {
  /* 面積計算 */
  function calcArea($height,$width) {
    return $height * $width;
  }
}

//呼び出し
$sq = new Square();
$area = $sq->calcArea(40,30);
echo "area = $area ";

?>

クラスを実際に使うとき(呼び出す時)は、new演算子でインスタンス化させます。newによってインスタンスの実行に必要なメモリ領域がコンピュータの中で確保されます。

上の例では、

$sq = new Square();

でSquareというクラスをインスタンス化し、\$sqという変数にオブジェクトを代入し以降、オブジェクト変数$sqが使えます。

<<PHP基礎(6)関数

PHP基礎(8)メソッド>>