--TEST-- Bug #30106 (SOAP cannot not parse 'ref' element. Causes Uncaught SoapFault exception) --EXTENSIONS-- soap --FILE-- array( "schema"=>"", "any"=>"Hello World!Bye World!")); } class LocalSoapClient extends SoapClient { private $server; function __construct($wsdl, $options=array()) { parent::__construct($wsdl, $options); $this->server = new SoapServer($wsdl, $options); $this->server->addFunction("getContinentList"); } function __doRequest($request, $location, $action, $version, $one_way = 0): string { echo $request; ob_start(); $this->server->handle($request); $response = ob_get_contents(); ob_end_clean(); echo $response; return $response; } } $client = new LocalSoapClient(__DIR__."/bug30106.wsdl"); var_dump($client->__getFunctions()); var_dump($client->__getTypes()); $x = $client->getContinentList(array("AFFILIATE_ID"=>1,"PASSWORD"=>"x")); var_dump($x); ?> --EXPECTF-- array(1) { [0]=> string(71) "getContinentListResponse getContinentList(getContinentList $parameters)" } array(3) { [0]=> string(64) "struct getContinentList { int AFFILIATE_ID; string PASSWORD; }" [1]=> string(83) "struct getContinentListResponse { getContinentListResult getContinentListResult; }" [2]=> string(66) "struct getContinentListResult { schema; any; }" } 1x Hello World!Bye World! object(stdClass)#%d (1) { ["getContinentListResult"]=> object(stdClass)#%d (2) { ["schema"]=> string(65) "" ["any"]=> string(48) "Hello World!Bye World!" } }