PHP - 像 call_user_func 一样调用 class

PHP - Call class like call_user_func

我有 2 个变量:

$class : contains the name of the class
$params : contains the parameters to initialize the class like ["key1" => "value1", "key2" => "value2"]

我想调用一个 class 就像函数 call_user_func() 对函数

做的那样

即:

$classObject = call_class($class, $params);
// Do the same that: 
$classObject = new $class("value1", "value2");

一个选项是使用数组参数解包,如果你是 运行 PHP >= 5.6:

$classObject = new $class(...$params);

另一种方法是使用 Reflection

$reflection = new ReflectionClass($class);
$classObject = $reflection->newInstanceArgs($params);

call_user_func_array 允许您调用 class 方法。

<?php

class Foo {
  public function bar($param1, $param2) {
    echo $param1.$param2;
  }
}

$className = 'Foo';

call_user_func_array(array(new $className, 'bar'), array('Hello', 'World !'));