phpでメソッドを動的に呼びたいとき(インスタンスメソッド、staticメソッド)
phpを使っていて、動的にstaticなメソッドをcallしたいことはよくある。
そんなときは、call_user_func()が便利だ。
class hoge{ static public function foo($foo){ print 'hogehoge is '.$foo; } $class = "hoge"; $method = "foo"; $foo = "test"; //引数 //$class::$method($foo); <- シンタックスエラーが出る call_user_func(array($class,$method),$foo); }
ちなみにインスタンスメソッドの呼び出し方は下記の通り
class hoge{
public function foo($foo){
print 'hogehoge is '.$foo;
}
$class = "hoge";
$method = "foo";
$foo = "test"; //引数
$obj = new $class;
$obj->$method($foo);
}