2010-02-05 94 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结尾。

相关问题