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;
}
Другие вопросы по тегам