2010-02-05 88 views
0

我現在實際上正在使用SOAP,而令人煩惱的是響應名稱因我調用的方法而異。例如,一個方法將響應..如何在不知道確切名稱的情況下引用對象屬性?

$響應 - > SendOrderResult

而另一個響應與

$響應 - > GetOrdersStateResult

是否有參照價值沒有的一種方式知道這個名字?即類似$迴應 - > *結果

+0

很奇怪,我從來沒有見過這個。 – Sarfraz 2010-02-05 10:33:11

回答

0

不,這是不可能的,你應該能夠找出通過分析你的代碼來調用並調用所需的方法後記什麼方法:

if (this condition) 
{ 
    $response->SendOrderResult(); 
} 
else 
{ 
    $response->GetOrdersStateResult(); 
} 

另一個可能性是使用get_class_methods函數。

$class_methods = get_class_methods(new myclass()); 

foreach ($class_methods as $method_name) 
{ 
    echo "$method_name\n"; 
} 
0

,你可以寫一個小功能(假設$responsestdClass型):

function extractResult($response) { 
    foreach ($response as $attribute_name => $attribute_value) { 
     if (strtolower(substr($attribute_name, -6)) == 'result') 
      return $attribute_value; 
    } 
} 

然後,您可以通過

$result = extractResult($response); 

注稱之爲:有可能在某些情況下,函數將不起作用,即如果生成的屬性名稱不以Result結尾。

相關問題