diff options
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 4138b5acb0..e33675125b 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1148,13 +1148,17 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo xmlNodePtr property; zval **zprop; char *str_key; + ulong index; + int key_type; - zend_hash_get_current_key(prop, &str_key, NULL, FALSE); + key_type = zend_hash_get_current_key(prop, &str_key, &index, FALSE); zend_hash_get_current_data(prop, (void **)&zprop); property = master_to_xml(get_conversion((*zprop)->type), (*zprop), style, xmlParam); - xmlNodeSetName(property, str_key); + if (key_type == HASH_KEY_IS_STRING) { + xmlNodeSetName(property, str_key); + } zend_hash_move_forward(prop); } } |