2010年2月15日月曜日

変数に設定しているクラス名からクラスを生成

Zend_Applicationでは、Bootstrapクラスを外部ソースで指定できるので、クラス名の文字列からクラスが生成できるだろうと思って調べてみたのでなんとなくメモ。


Zend_ApplicationのsetBootstrap()を見ていると、以下の記述があった。
コード例)
 $this->_bootstrap = new $class($this);
 どうやら、クラス名を文字列として指定して、生成できるよう。
ただ、
コード例)
 new 'クラス名'():

ではエラーになる。
一度変数に格納しないとだめなようです。


メソッドも同じように変数に一度格納することによって以下のような書き方できる。

コード例)
$class="aaa";
$method="bbb";
//aaaクラスを生成
$aaa=new $class();

//aaaのbbbメソッドを実行
$aaa->$method();

面白い。

0 件のコメント: