As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com Functions/Fungsi As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com
Definisi Fungsi Sebuah fungsi dapat didefinisikan menggunakan sintaks seperti berikut: function anu($arg1, $arg2, ..., $argN){ echo "Contoh fungsi.\n"; return $nilaibalik; }
Argumen Fungsi Informasi dapat diberikan ke fungsi lewat satu atau lebih argumen, yang dipisah menggunakan tanda koma ( , ) PHP mendukung pemberian argumen dengan nilai (passing by value) (default), pemberian dengan referensi (passing by reference), dan nilai argumen default
Passing By Value Argumen fungsi secara default akan dikirim nilainya (variabel atau konstanta) ke dalam fungsi Perubahan nilai dari argumen di dalam fungsi tidak mengubah nilai variabel di luar fungsi Contoh :
function hitung($x, $y){ echo "Jumlahnya = " . $x + $y; $x = 10; } $a = 2; $b = 3; hitung($a, $b); echo $a; Output : Jumlahnya = 5 2
Contoh fungsi yang menerima argumen berupa array: function terima($b){ echo "$b[0] + $b[1] = ", $b[0]+$b[1]; } $a = array(4, 7); terima($a);
Passing By Reference Bila ingin perubahan pada nilai argumen di dalam fungsi berpengaruh pula pada variabel di luar fungsi, maka harus dikirim sebagai referensi ke dalam fungsi Caranya adalah dengan menambahkan tanda ampersand (&) di depan nama argumen pada definisi fungsi Contoh :
function hitung(&$x, $y){ echo "Jumlahnya = " . $x + $y; $x = 10; } $a = 2; $b = 3; hitung($a, $b); echo $a; Output : Jumlahnya = 5 10
function coba(&$string){ $string .= 'dan tambahannya'; } $str = 'Ini sebuah string, '; coba($str); echo $str; Output: Ini sebuah string, dan tambahannya
Jika kita ingin mengirimkan sebuah variabel sebagai referensi ke sebuah fungsi yang tidak didefinisikan untuk menerima argumen sebagai referensi, maka kita dapat menambahkan tanda ampersand di depan nama argumen pada pemanggil fungsi:
function hitung($x, $y){ echo "Jumlahnya = " . $x + $y; $x = 10; } $a = 2; $b = 3; hitung(&$a, $b); echo $a; Output : Jumlahnya = 5 10
function lagi($abc) { $abc .= ' dan tambahannya'; } $str = 'Ini sebuah string, '; lagi($str); echo $str; Output: Ini sebuah string lagi(&$str); Output: Ini sebuah string, dan tambahannya
Nilai Default Argumen Sebuah fungsi dapat didefinisi memiliki nilai default fungsi untuk argumen bertipe skalar: function kopi($jenis = "cappucino"){ return "Membuat secangkir $jenis\n"; } echo kopi(); Output: Membuat secangkir cappucino echo kopi("espresso"); Output: Membuat secangkir espresso
Nilai default dari argumen harus berupa konstanta, bukan sebuah variabel atau anggota class PENTING: Ketika menggunakan argumen default, harus berada di sebelah kanan dari argumen non-default. Contoh penulisan argumen default yang salah : function minum($jenis = "susu", $rasa){ ……… //argumen default seharusnya //berada di sebelah kanan
Nilai Balik Fungsi Nilai dikembalikan dengan menggunakan statement opsional return. Tipe apapun dapat dikembalikan, termasuk list dan objek function kotak($num){ return $num * $num; } echo kotak(4); Output: 16
Tidak dapat mengembalikan lebih dari satu nilai dari sebuah fungsi, tapi hasil yang sama dapat diperoleh dengan cara mengembalikan sebuah list function angka(){ return array (0, 1, 2); } list($nol, $satu, $dua) = angka();
Untuk mengembalikan sebuah referensi dari sebuah fungsi, harus menggunakan operator referensi ( & ) pada deklarasi fungsi dan ketika memberikan nilai balik kepada variabel: function &kembali(){ return $anu; } $baru =& kembali();
Fungsi Variabel PHP mendukung konsep dari fungsi variabel. Ini berarti bahwa jika sebuah nama variabel memiliki tanda kurung (parentheses) dibelakangnya, maka PHP akan mencari fungsi dengan nama yang sama dengan nilai dari variabel tersebut, dan mencoba untuk mengeksekusi fungsi tersebut
function coba() { echo "Pada fungsi coba()<br>\n"; } function lagi($arg = '') { echo "Pada fungsi lagi(); argumennya '$arg'<br>\n"; $func = 'coba'; $func(); $func = 'lagi'; $func('percobaan');