Rujukan dalam PHP
Dalam PHP, anda boleh memberikan nilai satu pemboleh ubah kepada yang lain:
<?php
$num1 = 1;
$num2 = $num1; // memberikan
echo $num1; // 1
echo $num2; // 1
?>
Dengan pemberian nilai sedemikian, salinan nilai pemboleh ubah pertama direkodkan ke dalam pemboleh ubah baru. Ini bermakna pemboleh ubah tidak berkaitan antara satu sama lain dan boleh diubah secara bebas. Lihat contoh kod:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - tidak berubah
?>
Walau bagaimanapun, adalah mungkin untuk membuat supaya bukan nilai pemboleh ubah yang disalin, tetapi rujukan kepadanya. Dalam kes ini, apabila nilai satu pemboleh ubah berubah, nilai yang lain juga akan berubah.
Untuk menghantar nilai melalui rujukan, anda perlu meletakkan ampersand sebelum nama pemboleh ubah:
<?php
$num1 = 1;
$num2 = &$num1; // hantar melalui rujukan
?>
Sekarang, menukar pemboleh ubah pertama juga akan menukar pemboleh ubah kedua:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - telah berubah
?>
Begitu juga, jika kita menukar pemboleh ubah pertama, yang kedua juga akan berubah:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Beritahu, apakah hasil pelaksanaan kod:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Beritahu, apakah hasil pelaksanaan kod:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Beritahu, apakah hasil pelaksanaan kod:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Beritahu, apakah hasil pelaksanaan kod:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>