Мне нужно правильно запустить что-то вроде этого:
$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
или, может быть, кто-то знает альтернативы.
Начиная с 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);
Других решений пока нет …