Passing Argumen di PHP

PHP merupakan bahasa pemrograman yang cukup mudah dan cukup menyenangkan untuk dipelajari. Anda bisa membangun aplikasi berbasis web dengan cepat dan mudah. Sejak pertama kali diperkenalkan, bahasa ini dimaksudkan untuk menghasilkan halaman-halaman web yang dinamis. Hingga saat ini, PHP banyak sekali digunakan dalam membuat aplikasi
web—baik lokal maupun Internet—dinamis dan atraktif.
PHP sendiri dibuat oleh Rasmus Lerdorf, PHP bersifat open source dan telah digunakan oleh hampir seluruh web developer di seluruh dunia, situs resmi php bisa dikunjungi di www.php.net. Karena sifatnya yang open source dan semakin banyaknya user membuat bahasa pemprogaman ini mengalami perkembangan yang sangat cepat.

PASSING BY VALUE
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.

Ketika pass-by-values terjadi, method membuat sebuah salinan dari nilai variable yang dikirimkan ke method. Walaupun demikian, method tidak dapat secara langsung memodifikasi nilai variabel pengirimnya meskipun parameter salinannya sudah dimodifikasi nilainya di dalam method.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Fungsi Pass By Value</title>
</head>
<body>
<p>Hasil Pengolahan Fungsi Pass By Value</p>
<?php
function jumlah($nilai) {
$nilai++;
}
$input=30;
jumlah($input);
echo $input;
?>
</body>
</html>


Simpan kode di atas dengan nama passbyval.php
Keterangan:
Pada fungsi jumlah($input); jumlah dipanggil, fungsi tersebut akan memasukkan nilai dari variabel $input kedalam argumennya, jadi disini argumen fungsi jumlah adalah 30. 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 yaitu:
$value++;
$value = $value + 1
$value = 30 + 1
$value = 31

Untuk output,
echo $input;

Passing by value tidak merubah nilai variabel aslinya jika nilai argumen dalam fungsi berubah. 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, kita hanya cukup menambahkan operator & pada argumennya.

Contoh kode passing by reference:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Fungsi Pass By Reference</title>
</head>
<body>
<p>Hasil Pengolahan Fungsi Pass By Reference</p>
function jumlah(&$nilai)
$nilai++;
}
$input=30;
jumlah($input);
echo $input;
?>
</body>
</html>


Simpan kode di atas dengan nama passbyref.php
Pada passing by reference, nilai yang diakses & dimanipulasi adalah nilai aslinya, dengan begitu hasil manipulasi fungsilah yang gunakan sebagai outputnya, yaitu 31.