一尘不染

从PHP中的变量实例化一个类?

php

我知道这个问题听起来很模糊,因此我将通过一个示例来使其更加清楚:

$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(),有没有办法做到这一点?


阅读 386

收藏
2020-05-26

共1个答案

一尘不染

首先将类名放入变量中:

$classname=$var.'Class';

$bar=new $classname("xyz");

这通常是您将以Factory模式包装的东西。

2020-05-26