вызов метода объекта объекта с помощью call_user_func

рассмотрим этот простой сценарий:

$this->method($arg1, $arg2); 

Решение:

 call_user_func_array(array($this,'method'), array($arg1, $arg2)); 

рассмотрим этот сценарий:

 $this->object->method($arg1, $arg2); 

Должно ли это решение работать?

 call_user_func_array(array($this->object,'method'), array($arg1, $arg2)); 

Или это должно работать?

  call_user_func_array(array($this, 'object','method'), array($arg1, $arg2)); 

Изменить: будет ли попытка / улавливать работу для исключения SOAP, triger при использовании call_user_func?

  try { $soap_res = call_user_func_array(array($this->service,'getBanana'), array(0, 10)); } catch (SoapFault $fault) { die($fault->faultstring) } -  try { $soap_res = call_user_func_array(array($this->service,'getBanana'), array(0, 10)); } catch (SoapFault $fault) { die($fault->faultstring) } 

Solutions Collecting From Web of "вызов метода объекта объекта с помощью call_user_func"

Это должно работать:

 call_user_func_array(array($this->object,'method'), array($arg1, $arg2)); 

Первый аргумент – это тип обратного вызова , содержащий ссылку на объект и имя метода.

Вот хакерский вариант, может быть полезен кому-то:

 $method_name_as_string = 'method_name'; $this->$method_name_as_string($arg1, $arg2); 

Это использует переменные переменные PHP. Ужасно, черт возьми, но не особенно уродливее других …