diff options
Diffstat (limited to 'ext/standard/var.c')
| -rw-r--r-- | ext/standard/var.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c index 886142afff..ef53a15d0e 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -310,12 +310,24 @@ static int php_array_element_export(zval **zv, int num_args, va_list args, zend_ static int php_object_element_export(zval **zv, int num_args, va_list args, zend_hash_key *hash_key) { int level; + char *prop_name, *class_name; TSRMLS_FETCH(); level = va_arg(args, int); if (hash_key->nKeyLength != 0) { - php_printf("%*cvar $%s = ", level + 1, ' ', hash_key->arKey); + php_printf("%*c", level + 1, ' '); + zend_unmangle_property_name(hash_key->arKey, &class_name, &prop_name); + if (class_name) { + if (class_name[0] == '*') { + php_printf("protected"); + } else { + php_printf("private"); + } + } else { + php_printf("public"); + } + php_printf(" $%s = ", prop_name); php_var_export(zv, level + 2 TSRMLS_CC); PUTS (";\n"); } |
