オーバーロード

概要

マジックメソッドの__set、__getを使用して未定義のプロパティを参照可能にする


サンプル

<?php
class TestClass03{
	// オーバーロードエリア
	private $data = array();
 
	// オーバーロードsetメソッド
	public function __set($name, $value){
		echo "{$name}{$value}をセット\n";
		$this->data[$name] = $value;
	}
 
	// オーバーロードgetメソッド
	public function __get($name){
		// キーの存在チェック
		if(isset($this->data[$name])){
			echo "{$name}より{$this->data[$name]}を取得\n";
			return $this->data[$name];
		}
 
		// 取得できない場合
		return null;
	}
}
?>
<?php
	// インスタンス生成
	$obj = new TestClass03();
 
	// プロパティ設定
	$obj->aaa = "test";
	$obj->bbb = "hoge";
 
	// 表示
	echo $obj->aaa . "\n";
	echo $obj->bbb . "\n";
 
?>
 
 




最終更新:2012年08月18日 00:39