PASSING BY VALUE | PASSING BY REFERENCE |
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; ?> 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. Jadi outputnya adalah 5. Kecuali jika nilai dari fungsi tersebut masukkan kedalam variabel awal, seperti : $input=jumlah($input); maka, karena variabel input nilainya ditimpa dengan nilai dari return fungsi, jadi outputnya adalah 6. | 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; ?> 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. |
1 comment
Posting Komentar