如何调用call_user_func_array内部方法

时间:2017-10-13 17:41:08

标签: php arrays object callback call-user-func-array

我需要正确运行这样的事情:

$anchor->get_by_number(49)->set_value("hello");

对象名称,方法和参数是变量:

$object = 'anchor';
$method1 = 'get_by_number';
$params1 = array('49');
$method2 = 'set_value';
$params2 = array('hello');

使用call_user_func_array,或者有人知道替代方案。

1 个答案:

答案 0 :(得分:0)

从PHP 5.6起,您可以使用参数解包...

${$object}->$method1(...$params1)->$method2(...$params2);

要使用call_user_func_array执行此操作,只需嵌套它们:

call_user_func_array(array(call_user_func_array(array(${$object}, $method1), $params1),
                                                                  $method2), $params2);