Rabu, 17 Maret 2010

Passing Argument di PHP

Passing argument di PHP (PHP: Hypertext Processor)
2 contoh passing yang akan dijelaskan kali ini yaitu passing by value dan passing by reference
Passing By Value
secara default, semua nilai yang di-pass masuk atau keluar dari fungsi adalah passing by value, bukan by reference. Passing by Value ini maksudnya PHP membuat kopian dari nilai asli dan nilai kopian itulah yang kita akses dan kita manipulasi, bukan nilai aslinya.
dengan begitu bagaimanapun kita ubah nilai itu, tidak akan mengubah nilai aslinya...
Contoh kode program By Value dibawah ini:
<!DOCTYPE  html  PUBLIC  "-//W3C//DTD  XHTML  1.0  Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Pass By Value</title>
</head>
<body>
<p>Contoh fungsi pass by value</p>
<?php
function jumlah($nilai) {
$nilai++;
}
$input=10;
jumlah($input);
echo $input;
?>
</body>
</html>

Penjelasan:
Pada saat fungsi jumlah dipanggil,
jumlah($input);
fungsi tersebut akan memasukkan nilai dari variabel $input kedalam argumennya, jadi disini argumen fungsi jumlah adalah 10 (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 = 10 + 1
$nilai = 11
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 adalah10
Tampilan output:

 
  
tetapi apabila menggunakan passing by reference akan bernilai 11.
Mengapa outputnya akan bernilai 11? Dibawah akan saya jelaskan mengenai 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.
<!DOCTYPE  html  PUBLIC  "-//W3C//DTD  XHTML  1.0  Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Pass By Reference</title>
</head>
<body>
<p>Contoh fungsi pass by reference</p>
<?php
function jumlah(&$nilai) {
$nilai++;
}
$input=10;
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 11.





Tidak ada komentar:

Posting Komentar