PHP:Abfangbarer schwerwiegender Fehler:Objekt der Klasse stdClass konnte nicht in String konvertiert werden [geschlossen]

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

  •  14-11-2019
  •  | 
  •  

Frage

Ich erhalte den folgenden Dump und die folgende Fehlermeldung, wenn ich den angehängten Code ausführe.Was mich verwirrt, ist, dass $procID scheinbar als String zurückgegeben wird, aber sobald ich versuche, es erneut zu übergeben, ist es ein Objekt?Wie kann ich dafür sorgen, dass es eine Zeichenfolge ist/bleibt?Danke.

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));
?>
War es hilfreich?

Lösung

Was auch immer der $client->start() Methode zurückgegeben wird, wird sie als Objekt typisiert.Sie können über die auf die Eigenschaften des Objekts zugreifen -> Operator:

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

...

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

Dies war wahrscheinlich ein Array, wird aber in ein Objekt eingegeben.Somit erhalten Sie am Ende die stdClass.

Eine andere (und möglicherweise bessere) Möglichkeit, dies zu tun, besteht darin, die Rückgabe einzugeben.Auf diese Weise müssen Sie kein neues Array erstellen, um es später als Argument zu übergeben:

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

...

$exchange = $client->exchangeOptions($procID);
$end = $client->stop($procID);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top