Passing By Value VS Passing By Reference

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.

Untuk download file-nya disini

1 Response so far »

  1. 1

    I simply desired to thank you very much once again. I’m not certain the things that I would have achieved in the absence of these advice documented by you about this topic. It truly was a very daunting problem for me, but finding out the specialised manner you resolved the issue took me to jump for delight. I am just happier for the support and trust you find out what a powerful job your are carrying out teaching many others all through your web blog. I am certain you haven’t met all of us.


Comment RSS · TrackBack URI

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: