[php-src] Issue #9189: changing objects in array it changes them all instead of one
| From: | lolsilent | Date: | Thu, 28 Jul 2022 21:46:35 +0000 |
| Subject: | [php-src] Issue #9189: changing objects in array it changes them all instead of one | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-242060@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/9189
Author: lolsilent
### Description
The following code:
Array
(
[0] => stdClass Object
(
[id] => 333
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
[1] => stdClass Object
(
[id] => 333
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
[2] => stdClass Object
(
[id] => 333
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
for ($i=0;$i<$row->amount;$i++) {
$defender[$i]=$oorow;
}
$defender[0]->id = 111;
$defender[2]->id = 222;
$defender[1]->id = 333;
foreach ($defender as $dkey => $dval) {
print "$dkey $dval->id ";
}
Resulted in this output:
Array
(
[0] => stdClass Object
(
[id] => 333
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
[1] => stdClass Object
(
[id] => 333
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
[2] => stdClass Object
(
[id] => 333
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
But I expected this output instead:
Array
(
[0] => stdClass Object
(
[id] => 111
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
[1] => stdClass Object
(
[id] => 333
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
[2] => stdClass Object
(
[id] => 222
[mid] => 0
[hero] => mean machine
[element] => 5
[star] => 5
[evolve] => 5
[ascension] => 5
[level] => 66
[exp] => 91
[attack] => 1993
[defense] => 1993
[health] => 2819
[mana] => 10
[special] => 916
[protected] => 0
)
### PHP Version
PHP 7.4.26
### Operating System
WINDOWS 10 and CENTOS