xref: /PHP-8.2/ext/soap/tests/bugs/bug46419.phpt (revision 8b561d33)
1--TEST--
2Bug #46419 (Elements of associative arrays with NULL value are lost)
3--EXTENSIONS--
4soap
5--FILE--
6<?php
7function bar() {
8  return array('a' => 1, 'b' => NULL, 'c' => 2, 'd'=>'');
9}
10
11class LocalSoapClient extends SoapClient {
12  private $server;
13
14  function __construct($wsdl, $options) {
15    parent::__construct($wsdl, $options);
16    $this->server = new SoapServer($wsdl, $options);
17    $this->server->addFunction('bar');
18  }
19
20  function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
21    ob_start();
22    $this->server->handle($request);
23    $response = ob_get_contents();
24    ob_end_clean();
25    return $response;
26  }
27
28}
29
30$x = new LocalSoapClient(NULL,array('location'=>'test://',
31                                   'uri'=>'http://testuri.org'));
32var_dump($x->bar());
33?>
34--EXPECT--
35array(4) {
36  ["a"]=>
37  int(1)
38  ["b"]=>
39  NULL
40  ["c"]=>
41  int(2)
42  ["d"]=>
43  string(0) ""
44}
45