summaryrefslogtreecommitdiff
path: root/ext/soap/soap.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-09-27 15:25:10 +0000
committerDmitry Stogov <dmitry@php.net>2005-09-27 15:25:10 +0000
commit4329db25a1226593e31fba9d9395a19bbefa522c (patch)
tree14bfd7ce84ebd050155c4008eaf290592df2c6c3 /ext/soap/soap.c
parent72857b6dbb52d372af1cb51cb303b6f72e9dca01 (diff)
downloadphp-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.c12
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;
}