PHPのマジックメソッドと無名関数

マジックメソッドはPHP固有に近い
マジックメソッドは、インスタンスがある特定の条件になった時に、明示的にcallしなくても暗黙的にcallされるメソッドの総評
先頭2文字がアンダースコア(__)になっている

### アクセス不能プロパティを読み書きする__get(), __set()

class hoge {
	
	private $i_;
}

$obj = new hoge();
var_dump($obj->i_);
$obj->i_ = 1;
class hoge {

	public function __get($name){
		echo "get: name is ${name}\n";
		return "dummy";
	}
	public function __set($name, $val){
		echo "set: ${name} <= ${val}\n";
	}

	
	private $i_;
}

$obj = new hoge();
var_dump($obj->i_);
$obj->i_ = 1;

### __call()と__callStatic()
アクセス不能メソッド

class hoge {
	public function __call($name, $args){
		echo "call {$name}\n";
		var_dump($args);
	}
	public function __callStatic($name, $args){
		echo "callStatic {$name}\n";
		var_dump($args);
	}
}

$obj = new hoge();
$obj->func();
hoge::func_static();

### 無名関数

$func = function(){
	echo "Anonymous function\n";
};

$func();
var_dump($func);
class hoge {
	public function __invoke(){
		echo "call method\n";
	}
}

$obj = new hoge();
$obj();