summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/tests/array/bug52534.phpt14
-rw-r--r--ext/standard/var.c2
2 files changed, 15 insertions, 1 deletions
diff --git a/ext/standard/tests/array/bug52534.phpt b/ext/standard/tests/array/bug52534.phpt
new file mode 100644
index 0000000000..dfff3fdb4f
--- /dev/null
+++ b/ext/standard/tests/array/bug52534.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #52534 (var_export array with negative key)
+--FILE--
+<?php
+
+$aArray = array ( -1 => 'Hello');
+
+var_export($aArray);
+
+?>
+--EXPECT--
+array (
+ -1 => 'Hello',
+)
diff --git a/ext/standard/var.c b/ext/standard/var.c
index d0482f0d95..3e3b8eb163 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -353,7 +353,7 @@ static int php_array_element_export(zval **zv TSRMLS_DC, int num_args, va_list a
if (hash_key->nKeyLength == 0) { /* numeric key */
buffer_append_spaces(buf, level+1);
- smart_str_append_long(buf, hash_key->h);
+ smart_str_append_long(buf, (long) hash_key->h);
smart_str_appendl(buf, " => ", 4);
} else { /* string key */