Спасылкі ў 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;
?>