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

时间:2012-05-28 17:05:02

标签: php soap-client

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

1 个答案:

答案 0 :(得分:2)

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

提示:__getTypes()

struct ConvertTempResponse {
 double ConvertTempResult;
}