クラス

用語

オブジェクト
class Test{ //クラス
}
$t = new Test(); //生成されたインスタンス
クラスオブジェクト(クラス)
定義されたオブジェクトの雛形。型。
インスタンスオブジェクト(インスタンス)
クラスという型から生成したオブジェクト本体。
コンストラクタ
クラス生成時に実行されるメソッド
デストラクタ
クラス消滅時に実行されるメソッド
メンバ
クラス内で定義されたデータ
プロパティ(メンバ変数)
クラスでの変数
メソッド(メンバ関数)
クラスでの関数

定義

// プロパティ varはpublicと同等だが古い用法なので使わないのが無難
[var|public|private|protected] $PROPERTY;

// メソッド
[public|private|protected] function METHODNAME(){
}

// staticキーワード クラスに共通した静的な変数
// この変数は同一クラスのインスタンスすべてで共有する
// staticプロパティ
[public|private|protected] static $PROPERTYNAME;

// staticメソッド
// この関数は同一クラスのインスタンスすべてで共有する
[public|private|protected] static function METHODNAME(){
}

 // オブジェクト定数 先頭に$は付けない。
[public|private|protected] const CONSTANT;

静的メソッド

static function 関数名
インスタンス化しなくても呼び出して使えるメソッド。
クラス外から呼び出すには「クラス名::メソッド名」で呼び出す。

クラス内定数(php5〜)

const 定数名;
クラス内で定義して用いる定数。
クラス外から呼び出すには「クラス名::定数名」で呼び出す。

アクセス修飾子

メソッドやプロパティのアクセス範囲を指定する

public
クラス外からの呼び出し、クラス内の参照・呼び出し可能
private
クラス内のみの参照・呼出し可能
protected
クラス内または自分のクラスを継承したクラス内からの参照・呼出し可能

CLASSNAME:: クラス参照

class A{
	$a;
	function b(){
		echo $this->a;
	}
}
class Z{
	A::b();
}

疑似変数 $this

メソッドがコールされる場合に使う疑似変数。
定義したメソッド内で $this->METHOD $this->PROPERTY を用いると
その生成したインスタンス内のオブジェクトにアクセスできる。

class Test{
	public $var; //Testクラスのインスタンス個別の変数
	function set($v){
		$this->var = $v;
	}
	function get(){
		return $this->var;
	}
	function view(){
		echo $this->get(),PHP_EOL;
	}
}
$t = new Test();
$t->set('XYZ');
$t->view();

self:: 自身のクラスを示す

class Test{
	static $var; //Testクラス共通の静的変数
	function set($v){
		self::$var = $v;
	}
	function get(){
		return self::$var;
	}
	function view(){
		echo self::get(),PHP_EOL;
	}
}
$t = new Test();
$t->set('XYZ');
$t->view();

parent:: 親クラス(派生クラス)を示す

static:: 静的クラスを示す

マジックメソッド

特定の条件で自動的に呼び出されるメソッド。
これをユーザが定義するとその条件が発生すると呼び出される。

__construct(任意)
クラスのインスタンスが作られた際に呼び出される
__destruct(任意)
クラスのインスタンスが消された際に呼び出される
__get($name)
アクセス不能なプロパティを取得した際に呼び出される
__set($name,$value)
アクセス不能なプロパティに代入しようとした際に呼び出される
__isset()
アクセス不能なプロパティに対してisset()|かempty()|を実行した際に呼び出される
__unset()
アクセス不能なプロパティに対してunset()|を実行した際に呼び出される
__call($name,$param)
アクセス不能なメソッドを呼び出そうとした際に呼び出される
__callStatic($name,$param)
アクセス不能なメソッドをstaticに呼び出そうとした際に呼び出される
__sleep()
オブジェクトに対してserialize関数を実行した際に呼び出される
__wakeup()
オブジェクトに対してunserialize関数を実行した際に呼び出される
__toString()
オブジェクトを文字列にキャストした際に呼び出される
__invoke()
オブジェクトを関数として実行しようとした際に呼び出される
__set_state()
オブジェクトをvar_exportした文字列から復元するためのstaticメソッド
__clone()
オブジェクトに対してcloneキーワードを実行した際に呼び出される

クラスの継承

class TestParent{	//親クラス
	public $var;
	function set($v){
		$this->var = $v;
	}
	function get(){
		return $this->var;
	}
	function view(){
		echo $this->get(),PHP_EOL;
	}
}
class Test extends TestParent{	//子クラス
	function set($v){	//オーバーライド(親クラスのメソッド上書き)
		$this->var = str_repeat($v,2);
	}
}
$t = new Test();
$t->set('XYZ');
$t->view();

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規新規下位 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-04-27 (土) 23:40:34 (1610d)