피프:잡을 수있는 치명적인 오류:클래스의 객체는 문자열로 변환 할 수 없습니다[닫힘]

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

  •  14-11-2019
  •  | 
  •  

문제

첨부 된 코드를 실행할 때 다음과 같은 덤프 및 오류가 발생합니다.내가 혼란스러워하는 것은$프로시드가 문자열로 반환되는 것처럼 보이지만,그것을 다시 전달하려고 시도하자마자 그 객체입니까?어떻게 문자열을 유지/할 수 있습니까?고마워

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