Fungsi Panggilan Balik PHP
Fungsi Panggilan Balik
Fungsi panggilan balik (sering disebut hanya "panggilan balik") adalah fungsi yang diteruskan sebagai argumen ke fungsi lain.
Setiap fungsi yang ada dapat digunakan sebagai fungsi panggilan balik. Untuk menggunakan fungsi sebagai fungsi panggilan balik, berikan string yang berisi nama fungsi sebagai argumen dari fungsi lain:
Contoh
Berikan panggilan balik ke fungsi PHP array_map()
untuk menghitung panjang setiap string dalam array:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
Dimulai dengan versi 7, PHP dapat meneruskan fungsi anonim sebagai fungsi panggilan balik:
Contoh
Gunakan fungsi anonim sebagai panggilan balik untuk array_map()
fungsi PHP:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Callback dalam Fungsi yang Ditentukan Pengguna
Fungsi dan metode yang ditentukan pengguna juga dapat menggunakan fungsi panggilan balik sebagai argumen. Untuk menggunakan fungsi panggilan balik di dalam fungsi atau metode yang ditentukan pengguna, panggil dengan menambahkan tanda kurung ke variabel dan berikan argumen seperti fungsi normal:
Contoh
Jalankan panggilan balik dari fungsi yang ditentukan pengguna:
<?php
function exclaim($str) {
return $str . "! ";
}
function ask($str) {
return $str . "? ";
}
function
printFormatted($str, $format) {
// Calling the $format callback
function
echo $format($str);
}
// Pass "exclaim" and "ask" as callback
functions to printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>