我正在制造一个可能是一个非常简单的错误,但似乎无法解决。我正在尝试使用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返回一个字符串。为什么一个物体会返回?提前感谢您的帮助。
答案 0 :(得分:2)
嗯,你的期望可能是错的。 var_dump
或print_r
可以明确$results
实际上是什么,重新检查wsdl可以告诉您原因:
提示:__getTypes()
:
struct ConvertTempResponse {
double ConvertTempResult;
}