可能重复:
是否有一个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);