可能重复:
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传递给类构造函数?
答案 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));