How to call the constructor with call_user_func_array in PHP

后端 未结 1 1738
抹茶落季
抹茶落季 2020-11-28 06:33

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         


        
相关标签:
1条回答
  • 2020-11-28 07:09

    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);
    }
    
    0 讨论(0)
提交回复
热议问题