0

私が次のようなことをしたら:

boot.php:

function boot($c) { require 'mods/'.$c.'.php'; }
spl_autoload_register('boot');

index.php

require 'boot.php';

class Father {
function __construct()
{
/* get all modules in database then loop it like: */
foreach($mods as $v) eval('$cmod = new '.$v.'()');
}
}
new Father();

クラス モジュールの例:

class mod01 extends Father {

function __construct() { //code }

}

use eval が良い点なのか悪い点なのか知りたいのですが、db から来る mod の名前がわからないので使用しています。

4

2 に答える 2

3

あなたは必要ありませんeval()。(そして必要でなければ、単に使用しないでください)

foreach($mods as $v)
    $cmod = new $v();

あまりにも動作します。

于 2013-07-02T22:50:59.787 に答える
0

どちらの方法でも、新しく作成されたクラスにアクセスできます。

$classes = array() ;
foreach($mods as $v){
  $classes[] = new $v(); //Whats the point of rewriting $cmod?
}

各反復でオブジェクトへの参照を書き換えるだけなので、参照を配列に格納します。

于 2013-07-02T22:52:06.817 に答える