diff options
author | Dmitry Stogov <dmitry@php.net> | 2005-09-27 15:25:10 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2005-09-27 15:25:10 +0000 |
commit | 4329db25a1226593e31fba9d9395a19bbefa522c (patch) | |
tree | 14bfd7ce84ebd050155c4008eaf290592df2c6c3 /ext/soap/soap.c | |
parent | 72857b6dbb52d372af1cb51cb303b6f72e9dca01 (diff) | |
download | php-git-4329db25a1226593e31fba9d9395a19bbefa522c.tar.gz |
Fixed bug #34643 (wsdl default value has no effect)
Diffstat (limited to 'ext/soap/soap.c')
-rw-r--r-- | ext/soap/soap.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/soap/soap.c b/ext/soap/soap.c index aaec8d9f4d..fe4343346e 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -4018,9 +4018,21 @@ static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, { xmlNodePtr xmlParam; encodePtr enc; + zval defval; if (param != NULL) { enc = param->encode; + if (val == NULL || Z_TYPE_P(val) == IS_NULL) { + if (param->element) { + if (param->element->fixed) { + ZVAL_STRING(&defval, param->element->fixed, 0); + val = &defval; + } else if (param->element->def && !param->element->nillable) { + ZVAL_STRING(&defval, param->element->def, 0); + val = &defval; + } + } + } } else { enc = NULL; } |