PHP-də Istinadlar
PHP-də bir dəyişənin qiymətini digərinə mənimsədə bilərsiniz:
<?php
$num1 = 1;
$num2 = $num1; // mənimsədirik
echo $num1; // 1
echo $num2; // 1
?>
Belə bir mənimsətmədə, yeni dəyişənə ilk dəyişənin qiymətinin köçürməsi yazılır. Bu o deməkdir ki, dəyişənlər bir-biri ilə heç bir əlaqəli deyil və onları müstəqil şəkildə dəyişdirmək olar. Aşağıdakı kod nümunəsinə baxın:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - dəyişmədi
?>
Lakin, elə etmək olar ki, dəyişənin öz qiyməti deyil, ona olan istinad köçürülsün. Bu halda, bir dəyişənin qiymətini dəyişdikdə, digərinin qiyməti də dəyişəcək.
Qiyməti istinadla ötürmək üçün, dəyişənin adından əvvəl ampersand işarəsi qoymaq lazımdır:
<?php
$num1 = 1;
$num2 = &$num1; // istinadla ötürürük
?>
İndi birinci dəyişəni dəyişdirmək ikincinin də dəyişməsinə səbəb olacaq:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - dəyişdi
?>
Eynilə, əgər biz birinci dəyişəni dəyişsək, ikincisi də dəyişəcək:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Nəticə nə olacaq, izah edin:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Nəticə nə olacaq, izah edin:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Nəticə nə olacaq, izah edin:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Nəticə nə olacaq, izah edin:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>