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