Подтвердить что ты не робот

Вызов метода объекта объекта с помощью 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)
} 
4b9b3361

Ответ 1

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

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

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

Ответ 2

Здесь может быть полезен хакерский вариант:

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

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