From: Derick Rethans Date: Wed, 7 Jan 2009 14:36:07 +0000 (+0000) Subject: - MFH: Fixed bug #47027 (var_export doesn't show numeric indices on ArrayObject). X-Git-Tag: php-5.3.0beta1~252 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8ef259994f9f7dc85493865fb701c702cd489353;p=php - MFH: Fixed bug #47027 (var_export doesn't show numeric indices on ArrayObject). --- diff --git a/ext/standard/tests/general_functions/bug47027.phpt b/ext/standard/tests/general_functions/bug47027.phpt new file mode 100644 index 0000000000..e4f5aae9dd --- /dev/null +++ b/ext/standard/tests/general_functions/bug47027.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #47027 (var_export doesn't show numeric indices on ArrayObject) +--FILE-- + "foo", "bar" => "baz")); +var_export ($ao); +?> +--EXPECT-- +ArrayObject::__set_state(array( + 2 => 'foo', + 'bar' => 'baz', +)) diff --git a/ext/standard/var.c b/ext/standard/var.c index c99b7d3b0b..3f363cd5b2 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -363,13 +363,15 @@ static int php_object_element_export(zval **zv TSRMLS_DC, int num_args, va_list level = va_arg(args, int); + php_printf("%*c", level + 1, ' '); if (hash_key->nKeyLength != 0) { - php_printf("%*c", level + 1, ' '); zend_unmangle_property_name(hash_key->arKey, hash_key->nKeyLength - 1, &class_name, &prop_name); php_printf(" '%s' => ", prop_name); - php_var_export(zv, level + 2 TSRMLS_CC); - PUTS (",\n"); + } else { + php_printf(" %ld => ", hash_key->h); } + php_var_export(zv, level + 2 TSRMLS_CC); + PUTS (",\n"); return 0; } /* }}} */