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


PHP - how do I pass args to a class constructor while using variable class name?

可能重复:
是否有一个call_user_func((等价于创建一个新的类实例?

我这样安装我的班级:

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

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

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

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

查看ReflectionClass。你可以这样做:

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

这可能是最好的方法,但它是PHP的一个新添加。另一种选择是使用eval(),但我拒绝这样写代码。(

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

您确实喜欢这样:$validator = new $className($array);