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 !'));
我有 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 !'));