PHP:Уловимая фатальная ошибка:Объект класса stdClass не удалось преобразовать в строку [закрыто]

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

  •  14-11-2019
  •  | 
  •  

Вопрос

Я получаю следующий дамп и ошибку при запуске прикрепленного кода.Что меня смущает, так это то, что $procID возвращается в виде строки, но как только я пытаюсь передать его снова, это объект?Как мне сделать так, чтобы это было/осталось строкой?Спасибо.

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));
?>
Это было полезно?

Решение

Каким бы ни был $client->start() метод возвращается, он типизируется как объект.Вы можете получить доступ к свойствам объекта, используя -> оператор:

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

...

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

Вероятно, это был массив, но он вводится в объект.Таким образом, вы в конечном итоге получаете стандартный класс.

Другой (и, возможно, лучший) способ сделать это — ввести возврат.Таким образом, вам не нужно создавать новый массив для последующей передачи в качестве аргумента:

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

...

$exchange = $client->exchangeOptions($procID);
$end = $client->stop($procID);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top