スポンサーリンク
スポンサーリンク

クラスの活用

php

オブジェクトを作成したときに、はじめに色々な処理を
行いことがあります。オブジェクト生成時に初期値を設定したり、
値チェックをしたりです。

オブジェクトを生成されるときに必ず行われるメソッド
いうものを書いておくことができます。このメソッドのことを
コンストラクタ(constructor)と呼んでいます。
コンストラクはクラスの内部に記述します。コンストラクタは
__construct」という名前を使います。
名前の先頭が2つのアンダースコアではじまります。

function __construct(引数)
{
  文;
  ・・・・
}

オブジェクトを生成されるときコンストラクタが呼び出される。

メンバ変数は、個々のオブジェクトごとに値を格納することができ、
1人の人を表すオブジェクトごとに「佐藤さん」や「30」才という
値をもつことができます、名まえや年齢を調べるメソッドも
オブジェクトを作成した後、呼び出すことができました。
これまで出てきたメンバ・メソッドは、

オブジェクトに関連づけられていた

ということです。
これに対して、クラス全体で値を格納したり、処理したい場合もあると
思います。たとえば、Customerクラスでいくつのオブジェクトがあるか
知りたい場合には、クラス全体で値を持つことが必要です。
このことを

クラス全体に関連づけられる

ということがあります。クラス全体に関連付けるためには、
メンバ変数、メソッドの先頭にstaticをつけます。

 //オブジェクトごとに値が存在
 private $name = “”
 private $age = 18;

 //クラス全体に1つの値
 public static $count =0;
 ・・・・・

これまでのメンバ変数ではオブジェクトごとに値が存在しますが、
staticをつけたメンバ変数は、クラスに1つだけ存在することになります。
staticをつけたメンバ変数・メソッドは「クラス名::」をつけて使います。
以下のようにかきます。

Customer::$count

クラス全体で管理されるメンバ変数・メソッドには
staticをつける。

サンプルコードの実行結果はこちら

クラス名を確認

メソッドの中で、実行中のクラス名やメソッド名を出力できます。
クラス名を主力したい場合 「__CLASS__」、
メソッド名を出力したい場合「__METHOD__」という定数を出力します。
これらはPHPで定義されている定数です。プログラムの動作確認を
するときに便利です。

コメント

タイトルとURLをコピーしました