Skip to content

Commit 7251241

Browse files
committed
Merge branch 'PHP-7.4'
* PHP-7.4: Fixed bug #79477
2 parents d68dfaf + 58e6a0a commit 7251241

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

Zend/tests/bug79477.phpt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
--TEST--
2+
Bug #79477: casting object into array creates references
3+
--FILE--
4+
<?php
5+
6+
class Test {
7+
public $prop = 'default value';
8+
}
9+
10+
$obj = new Test;
11+
$obj->{1} = null;
12+
13+
$arr = (array) $obj;
14+
$arr['prop'] = 'new value';
15+
16+
echo $obj->prop, "\n";
17+
18+
?>
19+
--EXPECT--
20+
default value

Zend/zend_hash.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2806,7 +2806,7 @@ ZEND_API HashTable* ZEND_FASTCALL zend_proptable_to_symtable(HashTable *ht, zend
28062806
{
28072807
HashTable *new_ht = zend_new_array(zend_hash_num_elements(ht));
28082808

2809-
ZEND_HASH_FOREACH_KEY_VAL(ht, num_key, str_key, zv) {
2809+
ZEND_HASH_FOREACH_KEY_VAL_IND(ht, num_key, str_key, zv) {
28102810
do {
28112811
if (Z_OPT_REFCOUNTED_P(zv)) {
28122812
if (Z_ISREF_P(zv) && Z_REFCOUNT_P(zv) == 1) {

0 commit comments

Comments
 (0)