Reference u PHP-u
U PHP-u možemo dodeliti vrednost jedne promenljive drugoj:
<?php
$num1 = 1;
$num2 = $num1; // dodeljujemo
echo $num1; // 1
echo $num2; // 1
?>
Pri takvoj dodeli u novu promenljivu se upisuje kopija vrednosti prve promenljive. To znači da promenljive nisu nikako povezane jedna sa drugom i da se mogu nezavisno menjati. Pogledajte na primeru koda:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - nije se promenilo
?>
Međutim, može se postići da se kopira ne vrednost promenljive, već referenca na nju. U ovom slučaju pri promeni vrednosti jedne promenljive, menjaće se i vrednost druge.
Da bi se vrednost prosledila po referenci, potrebno je pre imena promenljive staviti ampersand:
<?php
$num1 = 1;
$num2 = &$num1; // prosleđujemo po referenci
?>
Sada će promena prve promenljive dovesti i do promene druge:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - promenjeno
?>
Slično, ako promenimo prvu promenljivu, promeniće se i druga:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Objasnite, kakav će biti rezultat izvršenja koda:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Objasnite, kakav će biti rezultat izvršenja koda:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Objasnite, kakav će biti rezultat izvršenja koda:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Objasnite, kakav će biti rezultat izvršenja koda:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>