Duniaweb Blog

Your Interner Life Partner

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.

September 20, 2008 - Posted by | Belajar PHP

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: