Di
sini saya hanya akan melakukan sedikit
review untuk mempermudah pemahaman teman2 tentang Passing By Value
dan Passing By Reference dengan cara membandingkannya. Start... ;)
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:
<?php
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
Tampilan
output:
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.
<?php
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:
Finish...
Mudahkan, saya ingatkan lagi bahwa ini hanya sekedar untuk
mempermudah pemahaman teman2 saja, sengaja saya menggunakan bahasa
yang umum agar lebih mudah dimengerti..
Selamat
membaca,
Semoga
berguna buat teman2 semua.. Amin.
Sumber dari situs Ilmu Website dalam kategori php kuliah dengan judul Passing By Value VS Passing By Reference
Tidak ada komentar:
Posting Komentar