피프:잡을 수있는 치명적인 오류:클래스의 객체는 문자열로 변환 할 수 없습니다[닫힘]
문제
첨부 된 코드를 실행할 때 다음과 같은 덤프 및 오류가 발생합니다.내가 혼란스러워하는 것은$프로시드가 문자열로 반환되는 것처럼 보이지만,그것을 다시 전달하려고 시도하자마자 그 객체입니까?어떻게 문자열을 유지/할 수 있습니까?고마워
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);
제휴하지 않습니다 StackOverflow