PHP function, what’s your function? 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 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 <?php function isLeapYear( $year ) { if (((($year % 4) == 0) && (($year % 100) != 0)) || (($year % 400) == 0)) $result = TRUE; else $result = FALSE; return( $result ); } $yr = 2000; printf( "Year %d ", $yr ); $status = isLeapYear( $yr ) ? "is" : "is not"; printf( "%s a leap year", $status ); ?>
Latihan Buat fungsi yang mengkonversi suhu Fahrenheit ke Celcius. Rumus:
Fungsi dengan Parameter Default <?php function myLog( $exp, $base = 10 ) { return( log( $exp, $base ) ); } $result = myLog( 1000 ); printf( "log10(1000): %.0f<br />", $result ); $result = myLog( 8, 2 ); printf( "log2(8): %d<br />", $result ); ?>
Variable Static <?php function birthday() { // initialize once static $age = 0; return( ++$age ); // same results? // return( $age++ ); } for ( $i = 0 ; $i < 5 ; $i++ ) { printf( "Age: %d<br />", 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 $x $y 1005 1010 123 123 function() Name: Name: Address: 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. function() $x 1005 123 $y 1010 123 Name: Address: Data: Name: Address: Data: value copied 12
Contoh Pass by Value <?php function passByValue( $y ) { $y = 321; // function value printf( "%s Inside: %d<br />", str_repeat( " ", 3 ), $y ); } $x = 123; // initial value printf( "Before: %d<br />", $x ); passByValue( $x ); printf( "After: %d<br />", $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 di-return.
Pass by Reference $x 1005 123 &$y 1010 1005 Name: Address: Data: Name: Pass by Reference mengcopy lokasi memori. Bertindak sebagai pointer. Sesudah keluar dari fungsi, alamat hasil copy dibersihkan namun data asal masi tetap ada. $x 1005 123 &$y 1010 1005 Name: Address: Data: Name: Address: Data: address copied
Contoh Pass by Reference <?php function passByRef( &$y ) { $y = 321; printf( "%sInside: %d<br />", str_repeat( " ", 3 ), $y ); } $x = 123; printf( "Before: %d<br />", $x ); passByRef( $x ); printf( "After: %d<br />", $x ); ?>
Kelebihan - Kekurangan Lebih cepat karena nilai tidak perlu dicopy Ideal untuk dataset besar Dapat mengembalikan banyak nilai Kekurangan: fungsi menjadi kurang ter-enkapsulasi.
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 <?php function add($a, $b) { return($a + $b); } ?> callInclude.php <?php include('functions.php'); echo add( 2, 3 ); ?>
Pernyataan include_once Hampir sama seperti include namun tidak akan memasukkan file yang telah pernah di-include 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 function wonderful() { ... } ?> math.php <?php include('misc.php'); ?> html.php <?php include('misc.php'); ?> include_once.php <?php include_once(‘math.php’); include_once(‘html.php’); include_once(‘db.php’); ?> db.php <?php include('misc.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.