Viungo katika PHP
Katika PHP unaweza kupeana thamani ya kutofautisha moja kwa nyingine:
<?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
$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
$num1 = 1;
$num2 = &$num1; // tunahamisha kwa kiungo
?>
Sasa kubadilisha kutofautisha kwanza kutasababisha kubadilika kwa pia pili:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - imebadilika
?>
Vivyo hivyo, ikiwa tutatabadilisha kutofautisha kwanza, basi pia kutabadilika pili:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Eleza, matokeo ya utekelezaji wa msimbo itakuwa nini:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>