Ссылка на элемент массива, влияющий на поведение копирования массива в PHP - PullRequest
0 голосов
/ 25 апреля 2020

Я хотел бы понять причину этого в 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
    )

Почему ссылка на какой-либо элемент приводит к тому, что он становится копируемым по ссылке, а не по значению (я полагаю, это способ по умолчанию)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...