summaryrefslogtreecommitdiff
path: root/ext/standard/var.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r--ext/standard/var.c14
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");
}