PHP SoapClient:类 stdClass 的对象无法转换为字符串


PHP SoapClient: Object of class stdClass could not be converted to string

我犯了一个非常简单的错误,但似乎无法解决。我正在尝试使用 PHP SoapClient 库向 Web 服务发送 SOAP 请求。尝试打印时出现以下错误:

"类 stdClass 的对象无法转换为字符串"

这是代码,主要取自 PHP SoapClient 手册。

<?php
try { 
    $options = array( 
                     'soap_version'=>SOAP_1_2, 
                     'exceptions'=>true, 
                     'trace'=>1, 
                     'cache_wsdl'=>WSDL_CACHE_NONE 
                    ); 
    $client = new SoapClient('http://www.webservicex.net/ConvertTemperature.asmx?WSDL', $options); 
    $results = $client->ConvertTemp(array('Temperature'=>'100', 'FromUnit' => 'degreeCelsius',
                                          'ToUnit' => 'degreeFahrenheit')); 
    } 
    catch (Exception $e) 
    { 
      echo "<h2>Exception Error!</h2>"; 
      echo $e->getMessage(); 
    } 
$results = $client->ConvertTemp(array('Temperature'=>'100', 'FromUnit' => 'degreeCelsius',
                                    'ToUnit' => 'degreeFahrenheit')); 
print $results;
?>

我知道该消息告诉我我正在尝试打印整个对象而不是该对象的成员。我不明白的是,我希望调用 ConvertTemp 以返回字符串。为什么要返回对象?提前感谢任何帮助。

好吧,你的期望可能是错误的。var_dumpprint_r可以阐明$results实际上是什么,重新检查 wsdl 可以告诉您原因:

提示: __getTypes()

struct ConvertTempResponse {
 double ConvertTempResult;
}