Fungsi Callback di PHP
Callback adalah fungsi, yang diteruskan sebagai parameter ke fungsi lain.
Mari kita lihat sebuah contoh. Misalkan kita memiliki fungsi yang parameter pertamanya menerima angka, dan parameter kedua - sebuah callback:
<?php
function func($num, $calb)
{
}
?>
Mari kita buat agar di dalam fungsi callback kita dipanggil untuk angka yang diteruskan:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Sekarang mari kita lihat, apa saja opsi untuk meneruskan callback ke fungsi kita.
Opsi 1
Callback kita bisa berupa fungsi biasa:
<?php
function calb($num) {
return $num ** 2;
}
?>
Dalam hal ini sebagai callback kita akan meneruskan nama fungsi kita:
<?php
func(3, 'calb');
?>
Di dalam fungsi func
callback kita akan dipanggil berdasarkan namanya.
Opsi 2
Callback kita bisa berupa fungsi anonim, yang disimpan dalam variabel:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Dalam hal ini kita meneruskan variabel yang berisi fungsi kita sebagai parameter:
<?php
func(3, $calb);
?>
Opsi 3
Kita bisa meneruskan fungsi anonim langsung sebagai parameter:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Opsi 4
Kita bisa mempersingkat kode dengan menggunakan fungsi panah:
<?php
func(3, fn($num) => $num ** 2);
?>
Soal Praktis
Diberikan sebuah fungsi, yang parameternya menerima array dan sebuah callback, yang akan diterapkan pada setiap elemen array:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Panggil fungsi ini, dengan meneruskan sebagai parameter array berisi angka-angka dan sebuah callback, yang memangkatkan angka yang diteruskan menjadi kuadrat.