diff options
| -rw-r--r-- | ext/standard/array.c | 3 |
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); |
