Belajar PHP - Fungsi overloading yaitu memungkinkan kita membuat nama function yang sama namun dengan tugas yang berbeda sesuai dengan jumlah argumen.
Sebagai contoh, kita akan mencari keliling atau luas dari bentuk tertentu, dengan ketentuan jika yang diberikan hanya nilai radiusnya saja (berisi 1 argumen) maka akan menghitung keliling lingkaran, namun apabila yang dimasukan nilai tinggi dan lebar (berisi 2 argumen) maka akan menghitung luas persegi panjang.
Kita akan menggunakan magic function
__call()
. Fungsi ini mengambil nama fungsi dan argumen.<?php
class Bentuk {
// magic function __call akan menerima
// nama function dan argumen
function __call($name_of_function, $arguments) {
if($name_of_function == 'area') {
switch (count($arguments)) {
// jika hanya 1 argumen
// hitung keliling lingkaran
case 1:
return 3.14 * $arguments[0];
break;
// jika ada 2 argumen
// hitung luas persegi panjan
case 2:
return $arguments[0]*$arguments[1];
break;
}
}
}
}
// instansiasi objek
$s = new Bentuk;
// area adalah nama function
// dengan 1 argumen dengan nilai 2
// maka akan menghitung lingkaran
echo($s->area(2));
echo "<br/>";
// area adalah nama function
// dengan 2 argumen dengan nilai 4 dan 2
// maka akan menghitung persegi panjang
echo ($s->area(4, 2));
?>
Referensi:
https://www.geeksforgeeks.org/function-overloading-and-overriding-in-php/
0 Komentar