Viungo katika PHP

Katika PHP unaweza kupeana thamani ya kutofautisha moja kwa nyingine:

php<?php
  $num1 = 1;
  $num2 = $num1; // tunaweka thamani
  
  echo $num1; // 1
  echo $num2; // 1
?>

Kwa uwekeaji huo, katika kutofautisha kupya kunaandikwa nakala ya thamani ya kutofautisha kwanza. Hii inamaanisha kwamba vigezo havihusiani kwa njia yoyote na unaweza kubadilisha kila kimoja kwa kujitegemea. Angalia mfano wa msimbo:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1; // 1 - haijabadilika
?>

Hata hivyo, inawezekana kufanya hivi, ili iondoshwe si thamani ya kutofautisha, bali kiungo kwake. Katika kesi hii, wakati thamani ya kutofautisha kimoja inabadilika, thamani ya nyingine pia itabadilika.

Ili kuhamisha thamani kwa kiungo, unahitaji kuweka alama ya ampersand mbele ya jina la kutofautisha:

php<?php
  $num1 = 1;
  $num2 = &$num1; // tunahamisha kwa kiungo
?>

Sasa kubadilisha kutofautisha kwanza kutasababisha kubadilika kwa pia pili:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2 = 2;
  
  echo $num1; // 2 - imebadilika
?>

Vivyo hivyo, ikiwa tutatabadilisha kutofautisha kwanza, basi pia kutabadilika pili:

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

Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:

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

Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:

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

Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:

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

Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:

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