PHP:Error fatal detectable:El objeto de clase stdClass no se pudo convertir en cadena [cerrado]

StackOverflow https://stackoverflow.com/questions/5032687

  •  14-11-2019
  •  | 
  •  

Pregunta

Recibo el siguiente volcado y error al ejecutar el código adjunto.Lo que me confunde es que $procID parece devolverse como una cadena, pero tan pronto como intento pasarlo nuevamente, ¿es un objeto?¿Cómo consigo que siga siendo una cuerda?Gracias.

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));
?>
¿Fue útil?

Solución

Cualquiera que sea el $client->start() El método regresa, se escribe como un objeto.Puede acceder a las propiedades del objeto utilizando el -> operador:

$procID = $client->start(array("prefix"=>"Genesis"));

...

$exchange = $client->exchangeOptions(array("processId"=>$procID->processId));

Probablemente se trataba de una matriz, pero se está escribiendo en un objeto.Por lo tanto, terminas con el clase estándar.

Otra forma (y posiblemente mejor) de hacerlo es escribir la declaración.De esa manera, no es necesario crear una nueva matriz para pasarla luego como argumento:

$procID = (array) $client->start(array("prefix"=>"Genesis"));

...

$exchange = $client->exchangeOptions($procID);
$end = $client->stop($procID);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top