Passing by Value
Argumen fungsi yang dilewatkan secara pass by value (default dalam php) berarti membuat kopi dari argumen yang asli sehingga argumen asli tersebut tidak ikut berubah dengan adanya proses pada fungsi terhadap argumen tersebut. Arti by value adalah jika nilai parameter berbuah, tidak akan ikut mengubah nilai variabel pada pemanggilan statemen. Untuk lebih jelasnya dapat dilihat pada contoh berikut ini:
<!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>Passing by value</title>
</head>
<body bgcolor=#ADD8E6>
<font color=purple size=5 face=impact>Argumen Fungsi by Value</font>
<br/><hr style="color:blue" />
<?php
function cetak($a)
{
$a=$a * 5;
echo("$a<br/>\n");
}
$a=5;
echo("$a<br/>\n");
cetak($a);
echo ($a);
?>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Passing by value</title>
</head>
<body bgcolor=#ADD8E6>
<font color=purple size=5 face=impact>Argumen Fungsi by Value</font>
<br/><hr style="color:blue" />
<?php
function cetak($a)
{
$a=$a * 5;
echo("$a<br/>\n");
}
$a=5;
echo("$a<br/>\n");
cetak($a);
echo ($a);
?>
</body>
</html>
Tampilan hasilnya adalah sebagai berikut:
Ada pula contoh lain dari passing by value
<!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 dengan pass by value</title>
</head>
<body bgcolor=#E6E6FA>
<font color=green size=5 face=impact>Argumen Fungsi by Value</font>
<br/><hr style="color:blue" />
<?php
function kuadrat($x)
{
$z=$x * $x;
return($z);
}
$a=5;
printf ("$a kuadrat = %.2f <br/> ",kuadrat($a));
$a=-2.5;
printf ("$a kuadrat = %.2f <br/> ",kuadrat($a));
?>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Fungsi dengan pass by value</title>
</head>
<body bgcolor=#E6E6FA>
<font color=green size=5 face=impact>Argumen Fungsi by Value</font>
<br/><hr style="color:blue" />
<?php
function kuadrat($x)
{
$z=$x * $x;
return($z);
}
$a=5;
printf ("$a kuadrat = %.2f <br/> ",kuadrat($a));
$a=-2.5;
printf ("$a kuadrat = %.2f <br/> ",kuadrat($a));
?>
</body>
</html>
Tampilan hasilnya adalah sebagai berikut:
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. Kebalikan dari cara di atas adalah transfer nilai by reference nilai by reference, di mana perubahan variabel parameter akan mengubah variabel pemanggilan. Indikasi suatu transfer nilai by reference dengan menambahkan di awal parameter tanda "&". Lebih jelasnya lihat syntax di bawah ini...
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Passing by reference</title>
</head>
<body bgcolor=#C0C0C0>
<font color=blue size=5 face="comic sans ms">Argumen Fungsi by Reference</font>
<br/><hr style="color:blue" />
<?php
function prosen(&$gaji,$persen)
{
$gaji+=$gaji * $persen/100;
}
$gaji=1000000;
echo("Gaji sebelum bonus : $gaji<br/>\n");
prosen($gaji,4);
echo ("Gaji setelah bonus: $gaji <br/>\n");
?>
</body>
</html>
Hasilnya adalah sebagai berikut...
0 komentar:
Posting Komentar