我知道这个问题听起来很模糊,因此我将通过一个示例来使其更加清楚:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
这就是我要做的。你会怎么做?我当然可以这样使用eval():
$var = 'bar'; eval('$bar = new '.$var.'Class(\'var for __construct()\');');
但是我宁愿远离eval()。没有eval(),有没有办法做到这一点?
首先将类名放入变量中:
$classname=$var.'Class'; $bar=new $classname("xyz");
这通常是您将以Factory模式包装的东西。