Fungsi PHP function, what’s your function?
Fungsi • Definisi: fungsi adalah satu blok code yang memiliki input dan output dan dapat di-reuse. • Suatu blok kode yang menyembunyikan detil dari implementasi
0
1
Kategori Fungsi • Fungsi ada 2: • Built-in function • User defined function
Built-in Function • Merupakan fungsi bawaan dari PHP yang tinggal dipakai sesuai keperluan. • Contoh: • • • • • •
phpinfo(); echo (“”Open the door!); $encrypted = md5($password); $nospasi = trim(“ teks berspasi ”); $kuadrat = sqrt(9); $waktu = time();
User Defined Function • Fungsi yang dibuat sendiri. • Syntax fungsi: function namaFungsi($param1, …) { … return ($returnValue); }
• Syntax pemanggilan fungsi: $returnVal = namaFungsi($p1, …);
Contoh Fungsi Buatan Sendiri
Latihan • Buat fungsi yang mengkonversi suhu Fahrenheit ke Celcius. • Rumus:
Fungsi dengan Parameter Default ", $result ); $result = myLog( 8, 2 ); printf( "log2(8): %d
", $result ); ?>
Variable Static ", birthday() ); } ?>
Variable static tidak akan hilang walaupun pemanggilan fungsi telah selesai. Nilainya akan tetap tersimpan hingga browser ditutup.
Pass by Value vs Pass by Reference
Passing Variables: The Inside Story • Apa yang sebenarnya terjadi pada variable yang dikirim ke suatu fungsi?
Pass by Value • Pass by Value membuat variable lokal yang hanya berlaku di dalam fungsi. • Sesudah keluar dari fungsi, variable dan nilai di dalamnya dibersihkan. Jika nilainya diperlukan maka perlu dikembalikan via statemen return.
Name: $x Address: 1005 Data: 123
value copied
function() $y Name: 1010 Address: 123 Data: 12
Contoh Pass by Value ", str_repeat( " ", 3 ), $y ); } $x = 123; // initial value printf( "Before: %d
", $x ); passByValue( $x ); printf( "After: %d
", $x ); ?>
Kelebihan - Kekurangan • Kelebihan: kode program menjadi lebih ter-enkapsulasi. • Kekurangan: • Memerlukan memory lebih banyak • Lebih lambat untuk dataset yang besar • Hanya satu variable saja yang bisa direturn.
Pass by Reference • Pass by Reference mengcopy lokasi memori. Bertindak sebagai pointer. • Sesudah keluar dari fungsi, alamat hasil copy dibersihkan namun data asal masi tetap ada.
Name: $x Address: 1005 Data: 123
address copied
&$y Name: 1010 Address: 1005 Data:
Contoh Pass by Reference ", str_repeat( " ", 3 ), $y ); } $x = 123; printf( "Before: %d
", $x ); passByRef( $x ); printf( "After: %d
", $x ); ?>
Kelebihan - Kekurangan • Kelebihan: • Lebih cepat karena nilai tidak perlu dicopy • Ideal untuk dataset besar • Dapat mengembalikan banyak nilai
• Kekurangan: fungsi menjadi kurang terenkapsulasi.
Latihan • Buat fungsi yang dapat menukar (swap) 2 nilai. Gunakan pass by reference untuk mengembalikan nilai.
Including Files
Pernyataan include • Mirip seperti #include pada C. • Membolehkan fungsi dibuat dalam file php tersendiri sehingga dapat di-reuse dan dipanggil bila perlu. • Syntax: • include( ‘namafile’ );
• Jika ada error: • Warning message ditampilkan dan proses tetap dilanjutkan.
Contoh include functions.php callInclude.php
Pernyataan include_once • Hampir sama seperti include namun tidak akan memasukkan file yang telah pernah diinclude sebelumnya. • Syntax: • include_once( ‘namafile’ );
• Jika ada error: • Warning message ditampilkan dan proses dilanjutkan.
Contoh include_once misc.php math.php
html.php
include_once.php
db.php
Pernyataan require • Mirip seperti include namun berbeda dari segi penanganan error • Syntax: • require( ‘namafile’ );
• Jika ada error: • Warning message ditampilkan dan program berhenti.
Pernyataan require_once • Mirip seperti require namun file yang telah ter-include sebelumnya tidak akan dimasukkan lagi. • Syntax: • Require_once( ‘namafile’ );
• Jika ada error: • Warning message ditampilkan dan program berhenti.