PHP-däki salgylar
PHP dilinde bir üýtgeýjiniň bahasyny beýleki bir üýtgeýjine berip bolýar:
<?php
$num1 = 1;
$num2 = $num1; // berýäris
echo $num1; // 1
echo $num2; // 1
?>
Şeýle berilende täze üýtgeýjine birkinji üýtgeýjiniň bahasynyň göçürmesi ýazylýar. Bu ýagdaý üýtgeýjiler hiç hili bir-biri bilen baglanyşykly däldir we olary özbaşdak üýtgedip bolýar. Kodyň mysalyndan göz aýlaň:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - üýtgedilmedi
?>
Emma, üýtgeýjiniň bahasynyň däl-de, ona bolan salgyny göçürip bolýar. Bu ýagdaýda bir üýtgeýjiniň bahasyny üýtgetmek, beýlekisiniň hem bahasyny üýtgeder.
Bahany salgyda ýollamak üçin, üýtgeýjiniň adyndan öň ampersand ( işaräni ) goýmaly:
<?php
$num1 = 1;
$num2 = &$num1; // salgyda ýollaýarys
?>
Indi birinji üýtgeýjini üýtgetmek, ikinjisini hem üýtgeder:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - üýtgedildi
?>
Şuňa meňzeş, birinji üýtgeýjini üýtgetsek, ikinjisi hem üýtger:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Aýdyň, bu kody ýerine ýetirilende näme netije çykar:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Aýdyň, bu kody ýerine ýetirilende näme netije çykar:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Aýdyň, bu kody ýerine ýetirilende näme netije çykar:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Aýdyň, bu kody ýerine ýetirilende näme netije çykar:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>