Beranda > php > Passing By Reference

Passing By Reference

Secara default, kita melewatkan (passing) argumen pada suau fungsi menggunakan value. Mekanisme yang dikenal sebagai passing-by-value ini, pada teknisnya, meng-copy nilai argumen yang di-pass tersebut kedalam variabel lokal.

Mekanisme lain dalam passing argumen adalah passing-by-reference .
Passing melalui referensi (reference) mengizinkan kita untuk menghindari pekerjaan pengembalian variabel dan meng-assign nilai ke variabel aslinya. Ini akan bermanfaat ketika anda ingin memodifikasi nilai argumen dengan fungsi tersebut

Untuk melakukan passing melalui referensi, tambahkan operator & pada variabel yang menjadi argumen. Contohnya seperti berikut :

// passing variabel $str by reference
function setHTMLTag (&$str, $tag = ‘b’) {
$str = “$str”;
}

$myStr = “Hello”;
setHTMLTag($myStr);
echo $myStr;

// men-set tag h1
setHTMLTag($myStr, h1);
echo $myStr;

Dalam kasus ini, argumen yang berupa $str akan di-pass by reference. Di sini anda tidak perlu mendefinisikan nilai kembalian karena nilai aslinya sudah dimodifikasi.
Selain passing argumen, anda juga bisa mengembalikan nilai melalui referensi, bukan melalui nilai. Penulisan fungsi untuk implementasi ini hampir sama dengan passing, tetapi operator & diletakan sebelum nama fungsi.

function &setHTMLTag($str, $tag = ‘b’) {
return “$str”;
}

$myStr = “Hello”;
$bold =& setHTMLTag($myStr);
echo $bold;

operator assignment yang digunakan disini adalah =&, bukan operator = (sama dengan). Jika anda menggunakan operator =, maka php akan meng-assign value, bukannya mengacu(referer).

Sumber : 101 Tips and Trik php (Didik Dwi Prasetyo).

Kategori:php
  1. Januari 20, 2009 pukul 12:05 am

    Trus yang passing by reference nya mana?
    eheheee….

    Update blogsitenya terus ya…!
    Salam dari ãñÐrî ñâwáwï
    CU Arround😉

  2. ariefugi
    Januari 20, 2009 pukul 10:24 am

    ok

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: