summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/array.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index de3e4b5573..cb3aa761bc 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -1438,6 +1438,9 @@ static void php_compact_var(HashTable *eg_active_symbol_table, zval *return_valu
{
zval *value_ptr, data;
+ if (Z_ISREF_P(entry)) {
+ entry = Z_REFVAL_P(entry);
+ }
if (Z_TYPE_P(entry) == IS_STRING) {
if ((value_ptr = zend_hash_find(eg_active_symbol_table, Z_STR_P(entry))) != NULL) {
ZVAL_DUP(&data, value_ptr);