call_user_func ile nesnenin nesnenin yöntemini çağırarak

2 Cevap php

Bu basit bir senaryo düşünün:

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

Çözüm:

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

Bu senaryoyu düşünün:

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

Bu çözüm işe gerekir?

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

Ya da bu çalışması gerekir?

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

Edit: Will try/catch works for SOAP exception, triger while using call_user_func?

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

2 Cevap

Bu çalışması gerekir:

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

İlk bağımsız değişken bir nesne başvurusu ve bir yöntem ismi içeren bir callback type olduğunu.

İşte hackish varyantı bulunuyor, birine yararlı olabilir:

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

Bu PHP değişken değişkenleri kullanır. Diğerlerinden daha özellikle çirkin cehennem gibi çirkin, ama ...