2

运行附加代码时出现以下转储和错误。我感到困惑的是 $procID 似乎是作为字符串返回的,但是一旦我尝试再次传递它,它就是一个对象?我如何让它成为/保持一个字符串?谢谢。

对象(stdClass)#2(1){
["processId"]=> 字符串(13)
“Genesis114001”} 字符串(311)
"Genesis114001" 字符串 (293) " 创世纪
" 可捕获的致命错误:对象
类 stdClass 无法转换
串起来
C:\wamp\www\SugarCE\testSOAPShawn.php
在第 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));
?>
4

1 回答 1

3

无论$client->start()方法返回什么,它都被输入为一个对象。您可以使用运算符访问对象的属性->

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

...

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

这可能是一个数组,但正在输入到一个对象中。因此,您最终得到了stdClass

另一种(可能更好)的方法是输入返回值。这样,您不必为以后作为参数传递创建一个新数组:

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

...

$exchange = $client->exchangeOptions($procID);
$end = $client->stop($procID);
于 2011-02-17T18:09:49.203 回答