⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bug36226.phpt

📁 PHP v6.0 For Linux 运行环境:Win9X/ WinME/ WinNT/ Win2K/ WinXP
💻 PHPT
字号:
--TEST--Bug #36226 SOAP Inconsistent handling when passing potential arrays.--SKIPIF--<?php require_once('skipif.inc'); ?>--INI--soap.wsdl_cache_enabled=0--FILE--<?phpini_set("soap.wsdl_cache_enabled",0);$timestamp = "2005-11-08T11:22:07+03:00";$wsdl = dirname(__FILE__)."/bug35142.wsdl";function PostEvents($x) {	var_dump($x);	exit();  return $x;}class TestSoapClient extends SoapClient {  function __construct($wsdl, $options) {    parent::__construct($wsdl, $options);    $this->server = new SoapServer($wsdl, $options);    $this->server->addFunction('PostEvents');  }  function __doRequest($request, $location, $action, $version) {		echo "$request\n";    $this->server->handle($request);    return $response;  }}$soapClient = new TestSoapClient($wsdl, 	array('trace' => 1, 'exceptions' => 0,		'classmap' => array('logOnEvent' => 'LogOnEvent',			'logOffEvent' => 'LogOffEvent',			'events' => 'IVREvents'),		'features' => SOAP_SINGLE_ELEMENT_ARRAYS));$logOnEvent = new LogOnEvent(34567, $timestamp);$logOffEvents[] = new LogOffEvent(34567, $timestamp, "Smoked");$logOffEvents[] = new LogOffEvent(34568, $timestamp, "SmokeFree");$ivrEvents = new IVREvents("1.0", 101, 12345, 'IVR', $logOnEvent, $logOffEvents);$result = $soapClient->PostEvents($ivrEvents);class LogOffEvent {  public $audienceMemberId;  public $timestamp;  public $smokeStatus;  public $callInitiator;  function __construct($audienceMemberId, $timestamp, $smokeStatus) {    $this->audienceMemberId = $audienceMemberId;    $this->timestamp = $timestamp;    $this->smokeStatus = $smokeStatus;    $this->callInitiator = "IVR";  }}class LogOnEvent {  public $audienceMemberId;  public $timestamp;  function __construct($audienceMemberId, $timestamp) {    $this->audienceMemberId = $audienceMemberId;    $this->timestamp = $timestamp;  }}class IVREvents {  public $version;  public $activityId;  public $messageId;  public $source;  public $logOnEvent;  public $logOffEvent;  function __construct($version, $activityId, $messageId, $source, $logOnEvent=NULL, $logOffEvent=NULL) {    $this->version = $version;    $this->activityId = $activityId;    $this->messageId = $messageId;    $this->source = $source;    $this->logOnEvent = $logOnEvent;    $this->logOffEvent = $logOffEvent;  }}?>--EXPECTF--<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://testurl/Message"><SOAP-ENV:Body><ns1:ivrEvents version="1.0" activityId="101" messageId="12345" source="IVR"><ns1:logOffEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="Smoked" callInitiator="IVR"/><ns1:logOffEvent audienceMemberId="34568" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="SmokeFree" callInitiator="IVR"/><ns1:logOnEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00"/></ns1:ivrEvents></SOAP-ENV:Body></SOAP-ENV:Envelope>object(IVREvents)#%d (6) {  ["version"]=>  string(3) "1.0"  ["activityId"]=>  int(101)  ["messageId"]=>  int(12345)  ["source"]=>  string(3) "IVR"  ["logOnEvent"]=>  array(1) {    [0]=>    object(LogOnEvent)#10 (2) {      ["audienceMemberId"]=>      int(34567)      ["timestamp"]=>      string(25) "2005-11-08T11:22:07+03:00"    }  }  ["logOffEvent"]=>  array(2) {    [0]=>    object(LogOffEvent)#%d (4) {      ["audienceMemberId"]=>      int(34567)      ["timestamp"]=>      string(25) "2005-11-08T11:22:07+03:00"      ["smokeStatus"]=>      string(6) "Smoked"      ["callInitiator"]=>      string(3) "IVR"    }    [1]=>    object(LogOffEvent)#%d (4) {      ["audienceMemberId"]=>      int(34568)      ["timestamp"]=>      string(25) "2005-11-08T11:22:07+03:00"      ["smokeStatus"]=>      string(9) "SmokeFree"      ["callInitiator"]=>      string(3) "IVR"    }  }}--UEXPECTF--<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://testurl/Message"><SOAP-ENV:Body><ns1:ivrEvents version="1.0" activityId="101" messageId="12345" source="IVR"><ns1:logOffEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="Smoked" callInitiator="IVR"/><ns1:logOffEvent audienceMemberId="34568" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="SmokeFree" callInitiator="IVR"/><ns1:logOnEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00"/></ns1:ivrEvents></SOAP-ENV:Body></SOAP-ENV:Envelope>object(IVREvents)#%d (6) {  [u"version"]=>  unicode(3) "1.0"  [u"activityId"]=>  int(101)  [u"messageId"]=>  int(12345)  [u"source"]=>  unicode(3) "IVR"  [u"logOnEvent"]=>  array(1) {    [0]=>    object(LogOnEvent)#10 (2) {      [u"audienceMemberId"]=>      int(34567)      [u"timestamp"]=>      unicode(25) "2005-11-08T11:22:07+03:00"    }  }  [u"logOffEvent"]=>  array(2) {    [0]=>    object(LogOffEvent)#%d (4) {      [u"audienceMemberId"]=>      int(34567)      [u"timestamp"]=>      unicode(25) "2005-11-08T11:22:07+03:00"      [u"smokeStatus"]=>      unicode(6) "Smoked"      [u"callInitiator"]=>      unicode(3) "IVR"    }    [1]=>    object(LogOffEvent)#%d (4) {      [u"audienceMemberId"]=>      int(34568)      [u"timestamp"]=>      unicode(25) "2005-11-08T11:22:07+03:00"      [u"smokeStatus"]=>      unicode(9) "SmokeFree"      [u"callInitiator"]=>      unicode(3) "IVR"    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -