ID: 43338 Updated by: [email protected] Reported By: daniel dot seif at castex dot cc -Status: Open +Status: Feedback Bug Type: SOAP related Operating System: Red Hat 5 EL PHP Version: 5.2.5 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ Previous Comments: ------------------------------------------------------------------------ [2007-11-19 17:50:57] daniel dot seif at castex dot cc Description: ------------ If a SoapServer-Object is instantiated with the option SOAP_SINGLE_ELEMENT_ARRAYS (to automatically get an array if defined in the wsdl) together with SOAP_USE_XSI_ARRAY_TYPE (to allow array types instead of wsdl types), an request sent with an SOAPEnc:Array will be transformed to an array with a "deepness" of 2. Reproduce code: --------------- class SoapHandler { function getSomething($arguments) { print_r($arguments); } } /** * SoapServer */ $server = new SoapServer($wsdl, array( 'uri' => $uri, 'features' => SOAP_USE_XSI_ARRAY_TYPE + SOAP_SINGLE_ELEMENT_ARRAYS)); $server->setClass('SoapHandler'); $server->handle(); /** * request **/ <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns4848:getSomething> <arguments xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]"> <item xsi:type="xsd:string">String 1</item> <item xsi:type="xsd:string">String 2</item> </arguments> </ns4848:getRouteMiles> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Expected result: ---------------- Array ( [0] => String 1 [1] => String 2 ) Actual result: -------------- Array ( [0] => Array ( [0] => String 1 [1] => String 2 ) ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43338&edit=1
