Подскажите, пожалуйста, почему в результате выполнения данного кода, когда в цикле foreach меняется значение
объекта $n, также меняется и соответствующее значение
объекта $mvs?
$a = new stdClass();
$b = new stdClass();
$a->name = 'one';
$b->name = 'two';
$movies = new stdClass();
$movies->a = $a;
$movies->b = $b;
foreach ($movies as $mvs) {
echo $mvs->name.' - before<br />';
$n = $mvs;
$n->name = 'changed';
echo $mvs->name.' - after<br />';
}
а вот в
массивом такого не происходит (значение $mvs['name'] остается тем же):
$movies = array( 'a' => array( 'name' => 'one'), 'b' => array( 'name' => 'two') );
foreach ($movies as $mvs) {
echo $mvs['name'].' - before<br />';
$n = $mvs;
$n['name'] = 'changed';
echo $mvs['name'].' - after<br />';
}