[php-src] Issue #9189: changing objects in array it changes them all instead of one

From: 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

« previous php.bugs (#242060) next »