Референце у PHP
У PHP је могуће доделити вредност једне променљиве другој:
<?php
$num1 = 1;
$num2 = $num1; // додељујемо
echo $num1; // 1
echo $num2; // 1
?>
При таквој додели у нову променљиву уписује се копија вредности прве променљиве. То значи да променљиве нису повезане међусобно и да се могу независно мењати. Погледајте пример кода:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - није се променило
?>
Међутим, могуће је учинити да се не копира вредност променљиве, већ референца на њу. У том случају при промени вредности једне променљиве, мењаће се и вредност друге.
Да би се вредност проследила пo референци, потребно је пре имена променљиве ставити амперсанд:
<?php
$num1 = 1;
$num2 = &$num1; // прослеђујемо по референци
?>
Сада ће промена прве променљиве довести и до промене друге:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - променило се
?>
Слично, ако променимо прву променљиву, промениће се и друга:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Реците, какав ће бити резултат извршавања кода:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Реците, какав ће бити резултат извршавања кода:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Реците, какав ће бити резултат извршавања кода:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Реците, какав ће бити резултат извршавања кода:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>