Php 如何在不知道确切名称的情况下引用对象属性?

Php 如何在不知道确切名称的情况下引用对象属性?,php,soap,Php,Soap,实际上,我目前正在使用SOAP,令人烦恼的是,响应名称因我调用的方法而异。例如,一个方法将响应 $response->SendOrderResult 而另一个人则以 $response->GetOrdersStateResult 有没有一种方法可以在不知道名称的情况下引用该值?例如$response->*Result不,这是不可能的,您应该能够通过分析代码并在后面调用所需的方法来确定要调用的方法: if (this condition) { $response->SendOrderRe

实际上,我目前正在使用SOAP,令人烦恼的是,响应名称因我调用的方法而异。例如,一个方法将响应

$response->SendOrderResult

而另一个人则以

$response->GetOrdersStateResult


有没有一种方法可以在不知道名称的情况下引用该值?例如$response->*Result

不,这是不可能的,您应该能够通过分析代码并在后面调用所需的方法来确定要调用的方法:

if (this condition)
{
  $response->SendOrderResult();
}
else
{
  $response->GetOrdersStateResult();
}
另一种可能性是使用该函数

$class_methods = get_class_methods(new myclass());

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

假设$response是stdClass类型,您可以为此编写一个小函数:

然后你可以通过

$result = extractResult($response);

注意:在某些情况下,函数可能无法工作,例如,如果生成的属性名称没有以Result结尾。

非常奇怪,我从未见过这种情况。
$result = extractResult($response);