Fungsi Panggilan Balik dalam PHP
Panggilan balik ialah fungsi, yang disampaikan sebagai parameter kepada fungsi lain.
Mari kita lihat contoh. Katakan kita mempunyai fungsi yang menerima nombor sebagai parameter pertama, dan panggilan balik sebagai parameter kedua:
<?php
function func($num, $calb)
{
}
?>
Mari kita buat supaya di dalam fungsi panggilan balik kita dipanggil untuk nombor yang disampaikan:
<?php
function func($num, $calb)
{
echo $calb($num);
}
?>
Sekarang mari kita lihat, apakah pilihan untuk menyampaikan panggilan balik ke fungsi kita.
Pilihan 1
Panggilan balik kita boleh menjadi fungsi biasa:
<?php
function calb($num) {
return $num ** 2;
}
?>
Dalam kes ini, sebagai panggilan balik kita akan menyampaikan nama fungsi kita:
<?php
func(3, 'calb');
?>
Di dalam fungsi func
panggilan balik kita akan dipanggil mengikut nama.
Pilihan 2
Panggilan balik kita boleh menjadi fungsi tanpa nama, yang direkodkan dalam pembolehubah:
<?php
$calb = function($num) {
return $num ** 2;
};
?>
Dalam kes ini, kita menyampaikan parameter pembolehubah dengan fungsi kita:
<?php
func(3, $calb);
?>
Pilihan 3
Boleh menyampaikan fungsi tanpa nama terus sebagai parameter:
<?php
func(3, function($num) {
return $num ** 2;
});
?>
Pilihan 4
Boleh memendekkan kod, menggunakan fungsi anak panah:
<?php
func(3, fn($num) => $num ** 2);
?>
Masalah Praktikal
Diberi fungsi, yang menerima array sebagai parameter dan panggilan balik, yang akan digunakan pada setiap elemen array:
<?php
function func($arr, $calb)
{
$res = [];
foreach ($arr as $elem) {
$res[] = $calb($elem);
}
return $res;
}
?>
Panggil fungsi ini, dengan menyampaikan array yang mengandungi nombor dan panggilan balik sebagai parameter, yang mengkuadratkan nombor yang disampaikan.