如何在PHP中使用call_user_func_数组调用构造函数

如何在PHP中使用call_user_func_数组调用构造函数,php,constructor,Php,Constructor,如何使用call\u user\u func\u数组调用类的构造函数 不可能做到: $obj = new $class(); call_user_func_array(array($obj, '__construct'), $args); 因为如果构造函数有参数,新的将失败 约束:我不控制必须实例化的类,也不能修改它们 不要问我为什么要做这件疯狂的事,这是一个疯狂的测试。你可以像这样使用: 从PHP5.6.0开始,也可以使用 $instance = new $class(...$args)

如何使用call\u user\u func\u数组调用类的构造函数

不可能做到:

$obj = new $class();
call_user_func_array(array($obj, '__construct'), $args); 
因为如果构造函数有参数,新的将失败

约束:我不控制必须实例化的类,也不能修改它们

不要问我为什么要做这件疯狂的事,这是一个疯狂的测试。

你可以像这样使用:


从PHP5.6.0开始,也可以使用

$instance = new $class(...$args);


请参阅这里的各种解决方案:此。。。语法太强大了:这三个点救了我一天。。感谢有史以来最被低估的运营商。谢谢@salathe!低于5.6.0时将失败,并出现以下错误:分析错误:语法错误,意外。“”
$instance = new $class(...$args);
if(version_compare(PHP_VERSION, '5.6.0', '>=')){
    $instance = new $class(...$args);
} else {
    $reflect  = new ReflectionClass($class);
    $instance = $reflect->newInstanceArgs($args);
}