PHPで動的にクラスを呼ぶときの方法と注意点

動的にクラスを呼びたい場合
~~~
$className::$methodName($value);
~~~

と書きたいところですが残念ながらエラーが出ちゃいます。

そこでどうすればいいかというとこうします

~~~
call_user_func(array($className, $methodName), $value);
~~~

ところがPHP5だとエラーは出ないけど値が返ってきません、どうやら$methodNameが明示的にstaticになっていないとだめな模様。。

色々理由はあるけど仕方がないのでこうして解決

~~~
$instance = new $className;
$instance>$methodName($value);
~~~

一行で書きたかっただけなので動けば何でもいいんですがマニュアルにもちゃんと書いてなかったのでメモメモφ(..)

PHP: call_user_func – Manual

コメント

タイトルとURLをコピーしました