Home > Info, PHP, Tips & Trick > Kapan Kita Harus Menggunakan Tanda “&”

Kapan Kita Harus Menggunakan Tanda “&”

July 5th, 2008 441 views Leave a comment Go to comments

Saya harus me-looping penjelasan saya kepada beberapa teman dan adik angkatan saya ketika mereka menanyakan tentang penggunaan tanda “&” pada syntax PHP. Mereka sering menemukan tanda ini di beberapa source code CMS yang sedang mereka pelajari namun belum tau efektivitas tanda ini dan belum tahu kapan harus menggunakannya.

Sebenarnya tanda “&” itu adalah salah satu fungsi dasar di PHP yang harus dipahami. Tanda ini sering digunakan dalam melempar argumen ke fungsi. Contoh:

<?
	function setData($test){
		// ... some code ...
        }
        setData(&$halo); // penggunaan tanda “&”
?>

Arti syntax sederhana diatas adalah variable $halo dijadikan argumen yang bersifat “Pass by Reference” sehingga setelah variable $halo – lah yang akan di proses di dalam fungsi setData, bukan hanya isinya saja. Jika kita melempar argumen tanpa tanda “&” maka sifat argumen tersebut adalah “Pass by Value”, yang hanya memproses isi variable tersebut. Saya akan berikan contoh selanjutnya:

<?
	// fungsi sederhana mem-format tanggal
	function setDate($mydate){
		$exp = explode('-',$mydate);
		$mydate = $exp[2].'-'.$exp[1].'-'.$exp[0];
		return $mydate;
	}
 
	$basicDate = '2007-07-02';	
 
	echo 'Tanggal Sebelum Diformat: '.$basicDate;
	echo '<br>Tanggal Diformat Langung (Pass by Value): '.setDate($basicDate);
	echo '<br>Isi Variable Setelah "Pass by Value": '.$basicDate;
	echo ' --> Isi variable masih sama';
 
	echo '<hr>Pass by Reference:'.setDate(&$basicDate);
	echo '<br>Isi Variable Setelah "Pass by Reference": '.$basicDate;
	echo ' --> Isi variable sudah berubah (permanen)';	
?>

Bila anda menjalankan perintah diatas maka anda akan menemukan tampilan seperti berikut:

Tanggal Sebelum Diformat: 2007-07-02
Tanggal Diformat Langung (Pass by Value): 02-07-2007
Isi Variable Setelah "Pass by Value": 2007-07-02 --&gt; Isi variable masih sama
 
Pass by Reference:02-07-2007
Isi Variable Setelah "Pass by Reference": 02-07-2007 --&gt; Isi variable sudah berubah (permanen)

Terlihat jelas perbedaan metode “Pass By Value” dan “Pass By Reference” ada pada kondisi variable setelah fungsi di panggil. “Pass By Reference” atau dengan menggunakan tanda “&” akan mengubah isi variable $basicDate secara permanen. Artinya “si variable” ini yang diolah di dalam fungsi, bukan cuma isinya.

Contoh dalam pengambilan data dari database terlihat di source spt ini:

<?
 
	function setData($id,$nama,$email){
		$query = mysql_query("SELECT * FROM t_users WHERE id = '$id'");
		if($query && mysql_num_rows($query) == 0){
			$data = mysql_fetch_assoc($query);
			$nama = $data['nama'];
			$email = $data['email'];
		}
	}
 
	$nama = '';
	$email = '';
	setData(1,&$nama,&$email);
 
	echo 'Nama: '.$nama;
	echo '<br>Email: '.$email;	
?>

Perhatikan perintah setData(1,&$nama,&$email) , nilai 1 itu adalah id untuk mengidentifikasi data dari database, argumen ini metodenya adalah “Pass By Value” dan variable $nama dan $email akan menampung data dari field nama dan email dari database. Fungsi ini dapat mempersingkat script anda dalam hal pengambilan data dari database.

Semoga bisa membantu… ^_^

Categories: Info, PHP, Tips & Trick Tags: ,
(No Ratings Yet) KurangBiasaLumayanBagusLuar Biasa
Loading ... Loading ...
  1. October 8th, 2008 at 12:56 | #1

    Penjelasan Anda sangat bermanfaat..Terima kasih..
    Saya sangat terbantu mengenai Pass By Value dan Pass By Reference.

  1. No trackbacks yet.