PHP'de Referanslar
PHP'de bir değişkenin değeri başka bir değişkene atanabilir:
<?php
$num1 = 1;
$num2 = $num1; // atıyoruz
echo $num1; // 1
echo $num2; // 1
?>
Böyle bir atamada, yeni değişkene ilk değişkenin değerinin bir kopyası kaydedilir. Bu, değişkenlerin birbirleriyle hiçbir bağlantısı olmadığı ve bağımsız olarak değiştirilebilecekleri anlamına gelir. Kod örneğine bakın:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - değişmedi
?>
Ancak, değişkenin değeri değil, değere bir referans kopyalanacak şekilde ayarlanabilir. Bu durumda, bir değişkenin değeri değiştirildiğinde, diğerinin değeri de değişecektir.
Değeri referans yoluyla iletmek için değişken adından önce bir ve işareti (&) konulmalıdır:
<?php
$num1 = 1;
$num2 = &$num1; // referans yoluyla iletiyoruz
?>
Artık ilk değişkendeki bir değişiklik ikincisinde de değişikliğe yol açacaktır:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - değişti
?>
Benzer şekilde, ilk değişkeni değiştirirsek, ikincisi de değişecektir:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Aşağıdaki kodun çalıştırılması sonucunda ne olacağını açıklayın:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Aşağıdaki kodun çalıştırılması sonucunda ne olacağını açıklayın:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Aşağıdaki kodun çalıştırılması sonucunda ne olacağını açıklayın:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Aşağıdaki kodun çalıştırılması sonucunda ne olacağını açıklayın:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>