How could I call the constructor of a class with call_user_func_array
It is not possible to do :
$obj = new $class(); call_user_func_array(array($obj, '__construct'), $args);    because if the constructor has parameters, the new will fail.
Constraint : I do not control the classes that I have to instantiate, nor can I modify them.
Don't ask me why I want to do this crazy thing, this is a crazy test.
You can use reflection like:
$reflect  = new ReflectionClass($class); $instance = $reflect->newInstanceArgs($args);   As of PHP 5.6.0, the ... operator can also be used for this purpose.
$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); } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With