如何从String创建对象?

时间:2010-01-17 04:07:21

标签: php

我尝试了以下代码:

$dyn = "new ". $className . "(" .$param1 . ", ". $param2 . ");";
$obj = eval($dyn);

它编译但它是空的。

你如何在PHP动态实例对象?

3 个答案:

答案 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,该对象采用定义要加载的类的字符串,以及构造函数参数的可选数组