Nuorodos PHP
PHP galima priskirti reikšmę vieno kintamojo kitam:
<?php
$num1 = 1;
$num2 = $num1; // priskiriame
echo $num1; // 1
echo $num2; // 1
?>
Esant tokiam priskyrimui, į naują kintamąjį įrašoma pirmojo kintamojo reikšmės kopija. Tai reiškia, kad kintamieji nėra jokiu būdu susiję vienas su kitu ir juos galima keisti nepriklausomai. Žiūrėkite pavyzdyje:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - nepasikeitė
?>
Tačiau galima padaryti taip, kad būtų kopijuojama ne kintamojo reikšmė, o nuoroda į ją. Tokiu atveju keičiant vieno kintamojo reikšmę, keisis ir kito reikšmė.
Norint perduoti reikšmę nuoroda, prieš kintamojo vardą reikia padėti ampersandą:
<?php
$num1 = 1;
$num2 = &$num1; // perduodame nuoroda
?>
Dabar pirmojo kintamojo pakeitimas taps ir antrojo pakeitimo priežastimi:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - pasikeitė
?>
Analogškai, jei pakeisime pirmąjį kintamąjį, pasikeis ir antrasis:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Pasakykite, koks bus kodo vykdymo rezultatas:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Pasakykite, koks bus kodo vykdymo rezultatas:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Pasakykite, koks bus kodo vykdymo rezultatas:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Pasakykite, koks bus kodo vykdymo rezultatas:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>