Belajar PHP Part 26 : Function (Method)

function

  • Function adalah block kode program yang akan berjalan saat kita panggil
  • Sebelumnya kita sudah menggunakan function isset(), count() dan lain-lain
  • Untuk membuat function di PHP, kita bisa menggunakan kata kunci function, lalu diikuti dengan nama function, kurung () dan akhiri dengan block
  • Kita bisa memanggil function dengan menggunakan nama function lalu diikuti dengan kurung ()
  • Di bahasa pemrograman lain, function juga disebut dengan method

function sayHello(){
    echo "Hello Function" . PHP_EOL;
}

sayHello();
sayHello();
sayHello();
sayHello();
sayHello();

function

Lokasi Function

  • PHP sangat flexible dalam pembuatan function
  • Tidak seperti pada bahasa pemrograman lain yang harus ada aturan lokasi dimana membuat function
  • Di PHP kita bebas membuat function dimanapun, bisa di dalam if staement, di dalam  function, dan sebagainya
  • Namun perlu diingat, jika kode function yang belum dieksekusi oleh PHP, maka function tersebut tidak akan bisa digunakan

Contoh Penempatan Function

sayHello();
sayHello();
sayHello();
sayHello();
sayHello();

function sayHello(){
    echo "Hello Function" . PHP_EOL;
}

Pada kode function diatas pemanggila berada di bagian paling atas, ini tetap bisa melakukan ekseskusi di dalam block function, karena lokasi function berada di global

Function di Dalam IF Statement

$buat = true;

if ($buat)
{
    function sayHello(){
        echo "Hello Function" . PHP_EOL;
    }
}

sayHello();
sayHello();
sayHello();
sayHello();
sayHello();

lokasi function

Artinya jika kondisi di if statement true, kode function akan di eksekusi dan keluar hasil outputnya, jika false kondisinya block kode di if tidak akan di eksekusi.

Hasilnya saat pemanggilan function yang berada di luar/global, akan terjadi error function yaitu sayHello(); undefinied.

Function Argument

  • Kita bisa mengirim informasi ke function yang ingin kita panggil
  • Untuk melakukan hal tersebut, kita perlu menambahkan argument atau parameter di function yang sudah kita buat
  • Cara membuat argument sama sepert membuat variable
  • Argument ditempatkan di dalam kurung () di deklarasi function
  • Argument bisa lebih dari satu, jika lebih dari satu, harus di pisah menggunakan tanda koma ( , )
Syntax

function nama ($argument1, $argument2 ) {
    //block kode
}

function sayHello($name) {
    echo "Hello $name" . PHP_EOL;
}

sayHello("Eko");
sayHello("Budi");

function argument/parameter

Default Argument Value

  • PHP mendukung default argument value
  • Fitur ini memungkinkan jika ketika kita memanggil function tidak memasukan parameter, kita bisa menentukan data default nya apa
function sayHello($name = "Anonymous") {
    echo "Hello $name" . PHP_EOL;
}

sayHello();
sayHello("Budi");

default value argument

Artinya ketika kita memanggil function sayHello(); tanpa mengirimkan value, maka secara otomatis akan menggunakan default argument value dengan nama "Anonymous" dan outputnya seperti di atas.

Kesalahan Default Argument Value

  • Default argument value bisa disimpan argument manapun
  • Namun jika argument lebih dari satu, dan kita menyimpan default argument value di parameter awal, maka ini kurang berguna
  • Sangat di sarankan pengguna default argument value di belakang dan parameter pertama wajib di isi
Kode Kurang Berguna

function saHello ($firstName = "", $lastName) {
    echo "Hello $firstName $lastName" . PHP_EOL;
}

sayHello("Eko");
sayHello("Budi");
sayHello("Eko", "Kurniawan");

Alasannya : Walaupun mengirimkan satu parameter ke function, tetap akan masuk ke $firstName = " ", tujuan kita ke $lastName function.


Contoh :

sayHello( , "Eko");

Artinya gak mungkin kalau kita mengirimkan hanya pada parameter kedua.


Kode sangat Berguna dan Mudah di Kembangkan
function sayHello($firstName, $lastName = "") {
    echo "Hello $firstName $lastName" . PHP_EOL;
}

sayHello("Eko");
sayHello("Budi");
sayHello("Eko", "Kurniawan");

kesalahan default argument value

Type Declaration

  • Sama seperti variable, argument di PHP bisa kita masukkan data yang dinamis
  • Kadang terlalu dinamis juga menyulitkan, jika ternyata kita hanya ingin membuat function yang menggunakan argument dengan tipe data tertentu
  • Untungnya di PHP, kita bisa menambahkan type data di argument, sehingga PHP akan melakukan pengecekan ketika mengirim value ke function tersebut
  • Jika tipe data value tidak sesuai, maka akan terjadi error
  • Secara default PHP akan melakukan percobaan konversi tipe data secara otomatis, misal jika kita menggunakan tipe int, tapi kita mengirim string, maka PHP akan otomatis mengkonversi string tersebut menjadi int.
valid types
valid types 2

Lebih Fokus ke tipe data array, bool, float, int, string

function sum(int $first, int $last) {
    $total = $first + $last;
    echo "Total $first + $last  = $total" . PHP_EOL;
}

sum("100", "100");
sum(100, 100);
sum(true, false);
sum([], []); //pasti error

result type declaration

Variable Length Argument List

  • Variable-length argument list merpakan kemampuan dimana kita bisa membuat sebuah parameter yang menerima banyak value
  • Variable-length argument list secara otomatis akan membuat argument tersebut menjadi array, namun kita tidak perlu manual mengirim array ke functionnya
  • Variable-length argument list hanya bisa dilakukan di argument posisi terakhir
  • Untuk membuat variable-length argument list, kita bisa menggunakan tanda ... (titik tiga kali) sebelum nama argument

Sebelum mengunakan Variable Length Argument List

function sumAll (array $values) {
    $total = 0;
    foreach($values as $value){
        $total += $value;
    }
    echo "Total " . implode(",", $values) . " = $total" . PHP_EOL;
}

sumAll([1, 2, 3, 4, 5]);

Sebelum mengunakan Variable Length Argument List

Sesudah mengunakan Variable Length Argument List

function sumAll (...$values) {
    $total = 0;
    foreach($values as $value){
        $total += $value;
    }
    echo "Total " . implode(",", $values) . " = $total" . PHP_EOL;
}

sumAll(1, 2, 3, 4, 5);
sesudah mengunakan Variable Length Argument List

atau
function sumAll (...$values) {
    $total = 0;
    foreach($values as $value){
        $total += $value;
    }
    echo "Total " . implode(",", $values) . " = $total" . PHP_EOL;
}

$values = [1,2,3,4,5];

sumAll(1, 2, 3, 4, 5);
sumAll(...$values);
konversi array menjadi variable lenght argument list

Next Post Previous Post
No Comment
Add Comment
comment url