diff options
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 024a19c32e..69bf69a4b1 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1071,6 +1071,15 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo sdlTypePtr sdlType = type->sdl_type; TSRMLS_FETCH(); + if (!data || Z_TYPE_P(data) == IS_NULL) { + xmlParam = xmlNewNode(NULL,"BOGUS"); + xmlAddChild(parent, xmlParam); + if (style == SOAP_ENCODED) { + xmlSetProp(xmlParam, "xsi:nil", "1"); + } + return xmlParam; + } + if (sdlType) { prop = NULL; if (Z_TYPE_P(data) == IS_OBJECT) { |