Спасылкі-масівы ў PHP

У PHP, у адрозненне ад іншых моваў праграмавання, масівы таксама капіююцца, а не перадаюцца па спасылцы.

Давайце пераканаемся ў гэтым:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  $arr2 = $arr1;
  $arr2[0] = '!';
  
  var_dump($arr1); // не зменіцца
?>

Прымусім цяпер масіў перадавацца па спасылцы:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  $arr2 = &$arr1;
  $arr2[0] = '!';
  
  var_dump($arr1); // зменіцца
?>
Задание 1

Раскажыце, якім будзе вынік выканання кода:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  
  $arr2 = $arr1;
  $arr2[0] = '!';
  
  echo $arr1[0];
  echo $arr2[0];
?>
Задание 2

Раскажыце, якім будзе вынік выканання кода:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  
  $arr2 = &$arr1;
  $arr1[0]++;
  
  echo $arr1[0];
  echo $arr2[0];
?>
Задание 3

Раскажыце, якім будзе вынік выканання кода:

php<?php
  $arr1 = [1, 2, 3, 4, 5];
  
  $arr2 = &$arr1;
  
  $arr1[0]++;
  $arr2[0]++;
  
  echo $arr1[0];
  echo $arr2[0];
?>