PHP : Function

PHP Built-in Function

Fungsi adalah blok kode mandiri yang melakukan tugas tertentu.

PHP memiliki banyak koleksi fungsi internal atau built-in yang dapat kalian panggil langsung dalam skrip PHP kalian untuk melakukan tugas tertentu, seperti gettype(), print_r(), var_dump, dll.

Silakan periksa bagian referensi PHP untuk daftar lengkap fungsi-fungsi bawaan PHP yang berguna.

Fungsi PHP User-Defined

Selain fungsi bawaan, PHP juga memungkinkan kalian untuk menentukan fungsi kalian sendiri. Ini adalah cara untuk membuat paket kode yang dapat digunakan kembali yang melakukan tugas tertentu dan dapat disimpan dan dikelola secara terpisah dari program utama. Berikut ini beberapa keuntungan menggunakan fungsi:

  • Fungsi mengurangi pengulangan kode dalam suatu program — Fungsi memungkinkan kalian untuk mengekstrak blok kode yang biasa digunakan menjadi satu komponen. Sekarang kalian dapat melakukan tugas yang sama dengan memanggil fungsi ini di mana pun kalian inginkan dalam skrip kalian tanpa harus menyalin dan menempel blok kode yang sama berulang kali.
  • Fungsi membuat kode lebih mudah untuk dimaintain — Karena fungsi yang dibuat satu kali dapat digunakan berkali-kali, sehingga setiap perubahan yang dibuat di dalam fungsi secara otomatis diimplementasikan di semua tempat tanpa menyentuh beberapa file.
  • Fungsi membuatnya lebih mudah untuk meng-eliminasi error — Ketika program ini dibagi menjadi beberapa fungsi, jika ada kesalahan terjadi kalian tahu persis apa fungsi yang menyebabkan kesalahan dan di mana menemukannya. Karena itu, memperbaiki kesalahan menjadi lebih mudah.
  • Fungsi dapat digunakan kembali di aplikasi lain — Karena suatu fungsi dipisahkan dari skrip yang lain, mudah untuk menggunakan kembali fungsi yang sama di aplikasi lain hanya dengan memasukkan file php yang berisi fungsi-fungsi tersebut.
Creating dan Invoking Function

Sintaks dasar pembuatan fungsi kustom dapat diberikan dengan:

function functionName(){
    // Code to be executed
}

Deklarasi fungsi yang ditentukan pengguna mulai dengan kata function, diikuti dengan nama fungsi yang ingin kalian buat diikuti oleh tanda kurung yaitu () dan akhirnya menempatkan kode fungsi kalian di antara kurung kurawal {}.

Ini adalah contoh sederhana dari fungsi yang ditentukan pengguna, yang menampilkan tanggal hari ini:

<?php
// Defining function
function whatIsToday(){
    echo "Today is " . date('l', mktime());
}
// Calling function
whatIsToday();
?>
Function dengan Parameters

Kalian dapat menentukan parameter saat kalian menentukan fungsi kalian untuk menerima nilai input pada saat dijalankan. Parameter berfungsi seperti variabel placeholder dalam suatu fungsi; mereka diganti pada saat dijalankan oleh nilai-nilai (dikenal sebagai argumen) yang disediakan untuk fungsi pada saat invocation.

function myFunc($oneParameter, $anotherParameter){
    // Code to be executed
}

Kalian dapat menentukan sebanyak mungkin parameter yang kalian inginkan. Namun untuk setiap parameter yang kalian tentukan, argumen yang sesuai perlu diteruskan ke fungsi ketika dipanggil.

Fungsi getSum() dalam contoh berikut mengambil dua nilai integer sebagai argumen, cukup tambahkan mereka bersama dan kemudian tampilkan hasilnya di browser.

<?php
// Defining function
function getSum($num1, $num2){
  $sum = $num1 + $num2;
  echo "Sum of the two numbers $num1 and $num2 is : $sum";
}
 
// Calling function
getSum(10, 20);
?>

Output dari kode di atas adalah:

Function dengan Optional Parameter dan Default Value

Kalian juga dapat membuat fungsi dengan parameter opsional — cukup masukkan nama parameter, diikuti dengan tanda sama dengan ( = ), diikuti oleh nilai default, seperti ini.

<?php
// Defining function
function customFont($font, $size=1.5){
    echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";
}
 
// Calling function
customFont("Arial", 2);
customFont("Times", 3);
customFont("Courier");
?>

Seperti yang kalian lihat panggilan ketiga ke customFont() tidak termasuk argumen kedua. Ini menyebabkan PHP engine menggunakan nilai default untuk parameter $size yaitu 1,5.

Mengembalikan Nilai dari suatu Fungsi

Fungsi dapat mengembalikan nilai ke skrip yang disebut function menggunakan pernyataan kembali (return statement). Nilai dapat dari jenis apa pun, termasuk array dan objek.

<?php
// Defining function
function getSum($num1, $num2){
    $total = $num1 + $num2;
    return $total;
}
 
// Printing returned value
echo getSum(5, 10); // Outputs: 15
?>

Suatu fungsi tidak dapat mengembalikan multiple value. Namun, kalian dapat memperoleh hasil yang serupa dengan mengembalikan array, seperti yang ditunjukkan pada contoh berikut.

<?php
// Defining function
function divideNumbers($dividend, $divisor){
    $quotient = $dividend / $divisor;
    $array = array($dividend, $divisor, $quotient);
    return $array;
}
 
// Assign variables as if they were an array
list($dividend, $divisor, $quotient) = divideNumbers(10, 2);
echo $dividend;  // Outputs: 10
echo $divisor;   // Outputs: 2
echo $quotient;  // Outputs: 5
?>
Passing Argumen ke Fungsi dengan Referensi

Di PHP ada dua cara kalian bisa meneruskan argumen ke suatu fungsi: dengan nilai dan dengan referensi. Secara default, argumen fungsi dilewatkan oleh nilai sehingga jika nilai argumen di dalam fungsi diubah, itu tidak akan terpengaruh di luar fungsi. Namun, untuk memungkinkan suatu fungsi memodifikasi argumennya, mereka harus dilewatkan dengan referensi.

Melewati argumen dengan referensi dilakukan dengan menambahkan sebuah ampersand ( & ) ke nama argumen dalam definisi fungsi, seperti yang ditunjukkan pada contoh di bawah ini:

<?php
/* Defining a function that multiply a number
by itself and return the new value */
function selfMultiply(&amp;$number){
    $number *= $number;
    return $number;
}
 
$mynum = 5;
echo $mynum; // Outputs: 5
 
selfMultiply($mynum);
echo $mynum; // Outputs: 25
?>
Memahami Variable Scope

Namun, kalian dapat mendeklarasikan variabel di mana saja dalam skrip PHP. Akan tetapi, lokasi deklarasi menentukan sejauh mana visibilitas variabel dalam program PHP yaitu di mana variabel dapat digunakan atau diakses. Aksesibilitas ini dikenal sebagai variable scope.

Secara default, variabel yang dideklarasikan dalam suatu fungsi adalah lokal dan mereka tidak dapat dilihat atau dimanipulasi dari luar fungsi itu, seperti yang ditunjukkan dalam contoh di bawah ini:

<?php
// Defining function
function test(){
    $greet = "Hello World!";
    echo $greet;
}
 
test(); // Outputs: Hello World!
 
echo $greet; // Generate undefined variable error
?>

Demikian pula, jika kalian mencoba mengakses atau mengimpor variabel luar di dalam fungsi, kalian akan mendapatkan variabel error yang tidak terdefinisi, seperti yang ditunjukkan pada contoh berikut:

<?php
$greet = "Hello World!";
 
// Defining function
function test(){
    echo $greet;
}
 
test();  // Generate undefined variable error
 
echo $greet; // Outputs: Hello World!
?>

Seperti yang kalian lihat pada contoh di atas, variabel yang dideklarasikan di dalam fungsi tidak dapat diakses dari luar, demikian juga variabel yang dinyatakan di luar fungsi tidak dapat diakses di dalam fungsi. Pemisahan ini mengurangi kemungkinan variabel dalam suatu fungsi dipengaruhi oleh variabel-variabel dalam main program.