Perbedaan Passing byValue dan Passing byReverence
passing by  value,
Secara   default, semua nilai yang di-pass masuk atau keluar dari fungsi   adalah passing by value, bukan by reference. ini berarti PHP  membuat  kopian dari nilai original dan nilai kopian itulah yang  kita akses  dan kita manipulasi, bukan nilai originalnya.dengan  begitu bagaimanapun kita ubah nilai itu, tidak akan mengubah nilai  originalnya…
contoh:function jumlah($nilai) {
$nilai++;
}
$input=5;
jumlah($input);
echo $input;
?>
Penjelasan:
Pada saat fungsi jumlah dipanggil,
jumlah($input);
fungsi tersebut akan memasukkan nilai dari variabel $input kedalam argumennya, jadi disini argumen fungsi jumlah adalah 5 (ini adalah nilai aslinya). selanjutnya PHP meng-copy nilai asli tersebut, kemudian hasil copy-nya digunakan untuk proses manipulasi fungsi, sedangkan nilai yang asli dibiarkan tidak berubah.
Proses manipulasinya sbb:
$nilai++;
$nilai = $nilai + 1
$nilai = 5 + 1
$nilai = 6
Untuk output,
echo $input;
Nilai   variabel $input yang diambil disini adalah nilai variabel  aslinya,  sehingga hasil manipulasi fungsi tadi tidak dipakai,  karena bukan  nilai asli. Jadi outputnya adalah 5
Tetapi apabila menggunakan passing by reference akan bernilai 6. Bagaimana outputnya akan bernilai 6? akan saya jelaskan lebih dahulu tentang passing by reference.
passing by reference,
Berbeda   dengan passing by value yang bersifat mengkopi, passing by  reference  memberikan nilai aslinya untuk diakses dan dimanipulasi,  dengan  contoh yang sama seperti diatas, kita akan modifikasi  menjadi  mekanisme passing by reference. Untuk  mengubah jadi passing by reference, kita hanya cukup menambahkan  operator & pada argumennya.
function jumlah(&$nilai) {
$nilai++;
}
$input=5;
jumlah($input);
echo $input;
?>
Penjelasan:
Sesuai dengan penjelasan passing by reference diatas, nilai yang diakses & dimanipulasi adalah nilai aslinya, dengan begitu hasil manipulasi fungsilah yang gunakan sebagai outputnya, yaitu 6.
Tampilan Outputnya:
Sumber : http://www.ilmuwebsite.com/belajar-php/passing-by-value-vs-passing-by-reference
Read Users' Comments (0)








