Referencat në PHP
Në PHP mund t'i caktohet vlera e një ndryshoreje një tjetre:
<?php
$num1 = 1;
$num2 = $num1; // caktojmë
echo $num1; // 1
echo $num2; // 1
?>
Me një caktim të tillë, në ndryshoren e re shkruhet një kopje e vlerës së ndryshores së parë. Kjo do të thotë që ndryshoret nuk lidhen në asnjë mënyrë në mes tyre dhe ato mund të ndryshohen në mënyrë të pavarur. Shikoni në shembullin e kodit:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - nuk ndryshoi
?>
Mundet, megjithatë, të bëhet në mënyrë që të kopjohet jo vlera e ndryshores, por një referencë për te. Në këtë rast kur ndryshohet vlera e një ndryshoreje, do të ndryshojë edhe vlera e tjetrës.
Që të transmetohet vlera me anë reference, duhet të vendoset një ampersand (&) përpara emrit të ndryshores:
<?php
$num1 = 1;
$num2 = &$num1; // transmetojmë me anë reference
?>
Tani ndryshimi i ndryshores së parë do të sjellë edhe ndryshimin e së dytës:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - u ndryshua
?>
Në mënyrë të ngjashme, nëse e ndryshojmë ndryshoren e parë, do të ndryshojë edhe e dyta:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Tregoni, çfarë do të jetë rezultati i ekzekutimit të kodit:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Tregoni, çfarë do të jetë rezultati i ekzekutimit të kodit:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Tregoni, çfarë do të jetë rezultati i ekzekutimit të kodit:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Tregoni, çfarë do të jetë rezultati i ekzekutimit të kodit:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>