3

我正在犯一个可能是一个非常简单的错误,但似乎无法解决。我正在尝试使用 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 来返回一个字符串。为什么要返回一个对象?提前感谢您的帮助。

4

1 回答 1

2

好吧,您的期望可能是错误的。A var_dumporprint_r可以阐明$results实际情况,重新检查 wsdl 可以告诉您原因:

提示__getTypes()::

struct ConvertTempResponse {
 double ConvertTempResult;
}
于 2012-05-28T17:13:35.937 回答