PHP SoapClient: объект класса stdClass не может быть преобразован в строку
Я делаю то, что может быть очень простой ошибкой, но, похоже, не получается. Я пытаюсь отправить запрос SOAP в веб-службу с помощью библиотеки PHP SoapClient. При попытке печати возникает следующая ошибка:
"Объект класса 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 ответ
Ну, ваши ожидания могут быть неверными. var_dump
или же print_r
может пролить свет на то, что $results
на самом деле повторное изучение wsdl может сказать вам, почему:
Подсказка: __getTypes()
:
struct ConvertTempResponse {
double ConvertTempResult;
}