マジックメソッドは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();