Odkazy v PHP
V PHP je možné priradiť hodnotu jednej premennej do druhej:
<?php
$num1 = 1;
$num2 = $num1; // priraďujeme
echo $num1; // 1
echo $num2; // 1
?>
Pri takomto priradení sa do novej premennej zapíše kópia hodnoty prvej premennej. To znamená, že premenné nie sú nijako prepojené a je možné ich nezávisle meniť. Pozrite si príklad kódu:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - nezmenilo sa
?>
Je však možné urobiť to tak, aby sa skopírovala nie hodnota premennej, ale odkaz na ňu. V tomto prípade pri zmene hodnoty jednej premennej sa zmení aj hodnota druhej.
Na to, aby sa hodnota predala odkazom, je potrebné pred názov premennej umiestniť ampersand:
<?php
$num1 = 1;
$num2 = &$num1; // prenášame odkazom
?>
Teraz zmena prvej premennej povedie aj k zmene druhej:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - zmenilo sa
?>
Podobne, ak zmeníme prvú premennú, zmení sa aj druhá:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Povedzte, aký bude výsledok vykonania kódu:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Povedzte, aký bude výsledok vykonania kódu:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Povedzte, aký bude výsledok vykonania kódu:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Povedzte, aký bude výsledok vykonania kódu:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>