PHP - 如何在使用变量类名时将args传递给类构造函数?

时间:2011-12-01 09:55:15

标签: php parameters constructor

  

可能重复:
  Is there a call_user_func() equivalent to create a new class instance?

我像这样对我的班级进行实施:

$className = 'varClassName';
$validator = new $className;

但我想将数组作为参数传递给类构造函数。我认为以下可能有用:

$className = 'varClassName(array('min'=>2, 'max'=50))';
$validator = new $className;

但是,这会导致无法找到类的错误。那么如何在使用变量类名时将args传递给类构造函数?

3 个答案:

答案 0 :(得分:2)

看看ReflectionClass。你可以这样做:

$rc = new ReflectionClass("YourClass");
$obj = $rc->newInstanceArgs(array(...));

这可能是最好的方法,但它是PHP的一个相当新的补充。另一种方法是使用eval(),但我拒绝编写这样的代码。 ;)

答案 1 :(得分:0)

你喜欢这样:$validator = new $className($array);

答案 2 :(得分:0)

$className = 'varClassName';
$validator = new $className(array('min'=>2, 'max'=>50));