Fungsi pass by value dan pas by reference adalah:
- fungsi adalah subprogram/subrutin program yang terdiri dari sekumpulan perintah yang akan melaksanakan suatu tugas tertentu.
- fungsi memungkinkan program menjadi lebih terstruktur dan juga memudahkan pelacakan kesalahan.
- menggunakan fungsi akan mempersingkat waktu pemrogram untuk menuliskan sekumpulan perintah yang sama berkali-kali.
argumen fungsi yang dilewatkan secara pass by value (default dalam php) berarti membuat copy dari argumen yang asli sehingga argumen asli tersebut tidak ikut berubah dengan adanya proses pada fungsi terhadap argumen tersebut.
secara default, semua nilai yang di pass masuk atau keluar dari fungsi passing by value. ini berarti PHP membuat copyan dari nilai original dan nilai copyan itu yang diakses dan di manipulasi, bukan nilai originalnya. dengan begitu bagaimanapun nilai tersebut diubah, tidak akan mengubah nilai originalnya.
berikut contoh dari fungsi pass by value:
function jumlah ($nilai){
$nilai++;
}
$input=30;
jumlah($input);
echo $input;
?>
simpan dengan nama passbyval.php dan berikut penjelasannya:
pada saat fungsi jumlah dipanggil,
jumlah($input)
maka fungsi tersebut akan memasukkan nilai dari variabel $input ke dalam argumennya, jadi disini argumen fungsi jumlah adalah 30 (ini adalah nilai aslina). selanjutnya PHP mengcopy nilai asli tersebut, kemudian hasil copy-an digunakan untuk proses manipulasi fungsi, sedangkan nilai yang asli dibiarkan tidak berubah. proses manipulasinya sebagai berikut :
$nilai++;
$nilai=$nilai + 1
$nilai = 30 + 1
$nilai = 31
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 30.
PASSING BY REFERENCE
Argumen fungsi yang dilewatkan secara pass by reference berarti membawa argumen asli ke dalam fungsi sehingga argumen asli tersebut akan ikut berubah dengan adanya proses pada fungsi terhadap argumen tersebut.
untuk mengubah jadi passing by reference, hanya dengan menambahkan operator & pada argumennya
function jumlah(&$nilai) {
$nilai++;
}
$input=30;
jumlah($input);
echo $input;
?>
simpan dengan nama passbyref.php.
sesuai dengan penjelasan passing by reference di atas, nilai yang di akses & dimanipulasi adalah nilai aslinya, dengan begitu hasil manipulasi fungsi yang digunakan sebagai outputnya, yaitu 31.
Tidak ada komentar:
Posting Komentar