--> Skip to main content

Membuat fungsi pass by reference pada pemrograman PHP


Pada tutorial sebelumnya kita telah mengdiskusikan tentang pembuatan fungsi dengan menggunakan argumen atau parameter dan juga pembuatan fungsi tanpa menggunakan parameter.

Dalam tutorial kali ini, kita masih menyinggung seputaran pembuatan fungsi. Fungsi yang akan kita bahas dalam kesempatan ini adalah pembuatan fungsi pass by reference.

Pembuatan fungsi pass by reference memiliki arti : nilai yang dilewatkan dalam sebuah argumen / paremeter dalam memanggil fungsi tersebut akan ikut berubah, sehingga nilai hasil olahan tersebut dapat digunakan diluar fungsi . Hal ini bertolak belakang jika kita menggunakan model pass by value, nilai yang dikirimkan ke fungsi yang dipanggil tidak dapat digunakan diluar fungsi tersebut.

Untuk dapat memahami perbedaan pass by value dengan pass by reference, perhatikan contoh dibawah ini :
<?php
 function tambah1($num) {
 $num += 2;
 }
 
 function tambah2(&$num) {
 $num += 2;
 }
 
 $nilai_awal = 10;
 tambah1($nilai_awal);
 
 echo "Nilai Awal adalah : $nilai_awal<br />";
 
 tambah2( $nilai_awal );
 echo "Nilainya menjadi : $nilai_awal<br />";
?>

Outputnya :
Nilai Awal adalah : 10
Nilainya menjadi : 12

Jika kita perhatikan nilai dari variabel $nilai_awal ketika dilewatkan pada fungsi tambah1 tidak berubah nilainya begitu dicetak diluar fungsi tersebut, yaitu :10. Sedangkan pada fungsi tambah2, nilainya menjadi 12 begitu dicetak diluar fungsi tambah2.

Pada contoh diatas, yang menjadi fungsi pass by reference adalah function tambah2(&$num), sedangkan yang menjadi fungsi pass by value adalah function tambah1($num).

Jadi untuk membuat fungsi pass by reference, kita cukup menambahkan simbol & pada parameternya. Dengan demikian nilai yang diolah dan telah berubah pada fungsi pass by reference dapat diakses dari luar fungsi tersebut.

Tutorial PHP tentang fungsi lainnya :
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar