我现在实际上正在使用SOAP,并且烦人地响应名称因我调用的方法而异。例如,一个方法将以..
响应$响应 - > SendOrderResult
而另一个回应
$响应 - > GetOrdersStateResult
有没有办法在不知道名字的情况下引用该值?即类似$ response-> *结果
答案 0 :(得分: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";
}
答案 1 :(得分:0)
你可以为此编写一个小函数(假设$response
的类型为stdClass
):
function extractResult($response) {
foreach ($response as $attribute_name => $attribute_value) {
if (strtolower(substr($attribute_name, -6)) == 'result')
return $attribute_value;
}
}
然后您可以通过
调用它$result = extractResult($response);
注意:在某些情况下,该功能将无效,即如果结果属性名称不以Result
结尾。