PHP:Erro fatal capturável:Objeto da classe stdClass não pôde ser convertido para string [fechado]
Pergunta
Eu recebo a seguinte informação & erro ao executar o código anexado.O que eu estou confuso é de que $procID parece ser retornado como uma seqüência de caracteres, mas assim que eu tentar passá-lo de novo, o seu objeto?Como eu faço para ser/ficar uma cadeia?Obrigado.
object(stdClass)#2 (1) { ["processId"]=> string(13) "Genesis114001" } string(311) "Genesis114001" string(293) " Genesis " Catchable fatal error: Object of class stdClass could not be converted to string in C:\wamp\www\SugarCE\testSOAPShawn.php on line 15
<?php
set_time_limit(0);
require_once('nusoap.php');
require_once('BenefitSOAP.php'); //WSDL to PHP Classes
$client = new SoapClient('C:\wsdl\BenefitDeterminationProcess_BenefitDialogueServiceSOAP.wsdl', array('trace' => 1));
$procID = $client->start(array("prefix"=>"Genesis"));
$respXML = $client->__getLastResponse();
$requXML = $client->__getLastRequest();
echo "<p/>";
var_dump($procID);
//echo "<p/>";
var_dump($respXML);
//echo "<p/>";
var_dump($requXML);
$exchange = $client->exchangeOptions(array("processId"=>$procID)); //LINE 15
$end = $client->stop(array("processId"=>$procID));
?>
Solução
Qualquer que seja a $client->start()
o método está voltando, ele é digitado como um objeto.Você pode acessar as propriedades do objeto usando o ->
operador:
$procID = $client->start(array("prefix"=>"Genesis"));
...
$exchange = $client->exchangeOptions(array("processId"=>$procID->processId));
Esta foi, provavelmente, uma matriz, mas está ficando digitado em um objeto.Assim, você acaba com a stdClass.
Outro (e possivelmente melhor) maneira de fazer isso é o tipo de retorno.Dessa forma, você não precisará fazer uma nova matriz para a posterior passando como argumento:
$procID = (array) $client->start(array("prefix"=>"Genesis"));
...
$exchange = $client->exchangeOptions($procID);
$end = $client->stop($procID);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow