我得到以下转储&运行附加代码时出错.令我感到困惑的是,$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));
这可能是一个数组,但正在输入一个对象.因此,你最终得到stdClass.
另一种(可能更好)的方法是输入回报.这样,您不必创建一个新数组以便以后作为参数传递:
$procID = (array) $client->start(array("prefix"=>"Genesis")); ... $exchange = $client->exchangeOptions($procID); $end = $client->stop($procID);