2015-05-26 3 views
2

Я пытаюсь вызвать функцию в моей C# WebService, но получаю эту ошибку:объект класса StdClass не может быть преобразован в строку в PHP при contacing в WebService

"Catchable fatal error: Object of class stdClass could not be converted to string".

Это мой код:

<?php 
try 
{ 
    $soap_client = new 
    soapclient("http://tsb01.cnap.hv.se/PersonalService/ServicePersonal.svc?wsdl"); 
    $quote = $soap_client->VisaPersonNamn(); 
    echo "$quote";   


} 
catch(SoapFault $exception) 
{ 
    echo $exception->getMessage(); 
} 
?> 

вебсервис действительно просто он возвращает только одну строку ..

не могу понять, что случилось .. помощь будет очень приятно !! :)

+0

'VisaPersonNamn' возвращает объект, а не строку. Используйте 'var_dump ($ quote)', чтобы увидеть его. – Barmar

+0

Ok, thx я вижу ответ вроде этого: объект (stdClass) # 2 (1) {["VisaPersonNamnResult"] => строка (4) "Kurt"} Я только, что показать «Kurt», как я могу сделай это?? – Newbie1337

+0

@ Newbie1337 пожалуйста, проголосуйте за ответ тоже –

ответ

0

Во-первых, проблема является VisaPersonNamn возвращает объект, и вы terating его в качестве строки путем записи echo "$quote"; вместо нее используйте либо var_dump($quote), либо print_r($quote).

Теперь, когда вы показываете, что var_dump ($ цитата) дает выход, как показано ниже: -

object(stdClass)#2 (1) { ["VisaPersonNamnResult"]=> string(4) "Kurt" } 

Чтобы показать значение Kurt, Вам нужно позвонить, как это: -

echo $quote->VisaPersonNamnResult; 
1

Измените эту строку echo "$quote"; на echo $quote->VisaPersonNamnResult;, если у вас всегда будет одна запись в ответе.

Если вы получите несколько записей, вы можете перебрать каждой записи, как,

foreach($quote as $record) 
{ 
    echo $record; 
} 

Более подробную информацию о доступе к PHP Objects here

Смежные вопросы