Референци во PHP
Во PHP може да се додели вредност од една променлива на друга:
<?php
$num1 = 1;
$num2 = $num1; // доделуваме
echo $num1; // 1
echo $num2; // 1
?>
При вакво доделување во новата променлива се запишува копија од вредноста на првата променлива. Ова значи дека променливите не се поврзани една со друга и може независно да се менуваат. Погледнете го примерот со код:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - не е променето
?>
Сепак, може да се направи така што да се копира не вредноста на променливата, туку референца кон неа. Во овој случај при промена на вредноста на едната променлива, ќе се промени и вредноста на другата.
За да се пренесе вредност по референца, потребно е пред името на променливата да се стави амперсанд:
<?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;
?>