我尝试了以下代码:
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");";
$obj = eval($dyn);
它编译但它是空的。
你如何在PHP动态实例对象?
答案 0 :(得分:19)
$class = 'ClassName';
$obj = new $class($arg1, $arg2);
答案 1 :(得分:4)
如果真的想要使用eval
- 如果你是PHP的新手,你应该不会这样做的机会;) - 你会做更像......的事情......
$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");";
eval("\$obj = $dyn");
答案 2 :(得分:1)
你到底想要完成什么? eval会起作用,但它可能不是一个好主意。
您可能想要做的是为您的对象实现factory,该对象采用定义要加载的类的字符串,以及构造函数参数的可选数组