PHP: Errore irreversibile Catchable: object della class stdClass non può essere convertito in string

Ottengo il seguente dump & error durante l'esecuzione del codice allegato. Quello di cui sono confuso è che $ procID sembra essere restituito come una string, ma non appena tento di passarlo di nuovo, è un object? Come posso get / rimanere una string? Grazie.

 object (stdClass) # 2 (1) {
 ["processId"] => string (13)
 "Genesis114001"} string (311)
 "Genesis114001" string (293) "Genesis
 "Errore irreversibile Catchable: Object of
 la class stdClass non può essere convertita
 per infilare
 C: \ wamp \ www \ SugarCE \ testSOAPShawn.php
 sulla linea 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', arrays('trace' => 1)); $procID = $client->start(arrays("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(arrays("processId"=>$procID)); //LINE 15 $end = $client->stop(arrays("processId"=>$procID)); ?> 

Qualunque sia il metodo $client->start() che viene restituito, viene digitato come object. Puoi accedere alle properties; dell'object usando l'operatore -> :

 $procID = $client->start(arrays("prefix"=>"Genesis")); ... $exchange = $client->exchangeOptions(arrays("processId"=>$procID->processId)); 

Questo era probabilmente un arrays, ma è stato digitato in un object. Quindi, si finisce con stdClass .

Un altro (e possibilmente migliore) modo per farlo è digitare il return. In questo modo, non è necessario creare un nuovo arrays per il successivo passaggio come argomento:

 $procID = (arrays) $client->start(arrays("prefix"=>"Genesis")); ... $exchange = $client->exchangeOptions($procID); $end = $client->stop($procID);