Я хотел бы понять причину этого в PHP (источник: первый комментарий этой PHP справочной страницы):
<?php
$array1 = array(1,2);
$x = &$array1[1]; // Unused reference
$array2 = $array1; // reference now also applies to $array2 !
$array2[1]=22; // (changing [0] will not affect $array1)
print_r($array1);
?>
Produces:
Array
(
[0] => 1
[1] => 22 // var_dump() will show the & here
)
и
<?php
$array1 = array(1,2);
$x = &$array1[1];
$array2 = $array1;
unset($x); // Array copy is now unaffected by above reference
$array2[1]=22;
print_r($array1);
?>
Produces:
Array
(
[0] => 1
[1] => 2
)
Почему ссылка на какой-либо элемент приводит к тому, что он становится копируемым по ссылке, а не по значению (я полагаю, это способ по умолчанию)?