Спасылкі ў PHP

У PHP можна прысвоіць значэнне адной зменнай у другую:

php<?php
  $num1 = 1;
  $num2 = $num1; // прысвойваем
  
  echo $num1; // 1
  echo $num2; // 1
?>

Пры такім прысвойванні ў новую зменную запісваецца копія значэння першай зменнай. Гэта значыць, што зменныя ніяк не звязаны адна з другой і іх можна незалежна змяняць. Глядзіце на прыкладзе кода:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1; // 1 - не змянілася
?>

Можна, аднак, зрабіць так, каб капіявалася не значэнне зменнай, а спасылка на яго. У гэтым выпадку пры змяненні значэння адной зменнай, будзе змяняцца і значэнне другой.

Для таго, каб перадаць значэнне па спасылцы, трэба перад імем зменнай паставіць ампэрсанд:

php<?php
  $num1 = 1;
  $num2 = &$num1; // перадаем па спасылцы
?>

Цяпер змяненне першай зменнай прывядзе і да змянення другой:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2 = 2;
  
  echo $num1; // 2 - змянілася
?>

Аналагічна, калі мы зменім першую зменную, то зменіцца і другая:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num1 = 2;
  
  echo $num2; // 2
?>
Задание 1

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

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1;
  echo $num2;
?>
Задание 2

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

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2++;
  
  echo $num1;
  echo $num2;
?>
Задание 3

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

php<?php
  $num1 = 1;
  $num2 = $num1;
  
  $num1++;
  $num2++;
  
  echo $num1;
  echo $num2;
?>
Задание 4

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

php<?php
  $num1 = 1;
  $num2 = &$num1;
  
  $num1++;
  $num2++;
  
  echo $num1;
  echo $num2;
?>