Selasa, 16 Maret 2010

Passing Argumen di PHP

 
Passing by value vs passing by reference.
Itulah contoh dari passing argumen yang ada pada pemrograman PHP. Keduanya memiliki karakter yang berbeda. Untuk lebih jelasnya. mari kita lihat perbedaannya melalui beberapa contoh.
-->Passing by value
Variable yang diberikan oleh parameter hanya akan diolah didalam fungsi, variable yang berada diluar fungsi akan tetap. Dengan kata lain variable yang dipakai oleh suatu fungsi tidak akan mempengaruhi variable yang ada diluar.

Contoh:


function jumlah($nilai) {


$nilai++;


}

$input=5;

jumlah($input);

echo $input;

?>


Penjelasan:

Pada saat fungsi jumlah($input); jumlah dipanggil, 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. Proses manipulasinya sbb:

$nilai++;



$nilai = $nilai + 1


$nilai = 5 + 1



$nilai = 6


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 5. Tetapi apabila menggunakan passing by reference akan bernilai 6. Akan dijelaskan passing by reference terlebih dahulu.

-->Passing by reference
Jika pada pass by value, nilai hasil olahan tidak dapat digunakan diluar fungsi, maka pass by reference sebaliknya, hasil olahan yang telah diproses di dalam fungsi dapat digunakan di luar fungsi, dengan kata lain value yang di luar fungsi akan turut berubah seiring perubahan yang terjadi pada variable didalam fungsi.
contoh:
pada argumennya.

function jumlah(&$nilai) {

$nilai++;

}

$input=5;

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 6.

Mungkin ini hanya contoh sekilas dari passing by value dam passing by reference. Bisa dipelajari lebih dalam pada buku-buku php maupun e-book. Fin. :-)

0 komentar:

Posting Komentar

Pengikut