Как вызвать внутренний метод 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или, может быть, кто-то знает альтернативы.

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);
0

Другие решения

Других решений пока нет …