Atsauces PHP
PHP var piešķirt vērtību vienam mainīgajam citam:
<?php
$num1 = 1;
$num2 = $num1; // piešķiram
echo $num1; // 1
echo $num2; // 1
?>
Ar šādu piešķiršanu jaunajā mainīgajā tiek ierakstīta vērtības kopija pirmā mainīgā. Tas nozīmē, ka mainīgie nekādā veidā nav saistīti viens ar otru un tos var neatkarīgi mainīt. Skatieties piemērā ar kodu:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - nav mainījies
?>
Var tomēr izdarīt tā, lai kopētos nevis mainīgā vērtība, bet atsauce uz to. Šajā gadījumā mainot viena mainīgā vērtību, mainīsies arī otra mainīgā vērtība.
Lai nodotu vērtību pa atsauci, mainīgā nosaukuma priekšā jāliek & zīme:
<?php
$num1 = 1;
$num2 = &$num1; // nododam pa atsauci
?>
Tagad pirmā mainīgā izmaiņa izraisīs arī otrā mainīgā izmaiņu:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - mainījies
?>
Līdzīgi, ja mēs mainīsim pirmo mainīgo, tad mainīsies arī otrais:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Pastāstiet, kāds būs koda izpildes rezultāts:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Pastāstiet, kāds būs koda izpildes rezultāts:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Pastāstiet, kāds būs koda izpildes rezultāts:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Pastāstiet, kāds būs koda izpildes rezultāts:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>