Fungsi Callback
Fungsi callback (sering disebut hanya “callback”) adalah fungsi yang dikirimkan sebagai argumen ke fungsi lain.
Fungsi apa pun yang ada dapat digunakan sebagai fungsi callback. Untuk menggunakan fungsi sebagai fungsi callback, berikan string yang berisi nama fungsi sebagai argumen fungsi lain:
Contoh :
Meneruskan callback 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); ?> /* Output Array ( [0] => 5 [1] => 6 [2] => 6 [3] => 7 ) /
Dimulai dengan versi PHP 7 maka dapat meneruskan fungsi anonim sebagai fungsi callback:
Contoh :
Gunakan fungsi anonim sebagai callback untuk fungsi array_map()
PHP:
<?php $strings = ["apple", "orange", "banana", "coconut"]; $lengths = array_map( function($item) { return strlen($item); } , $strings); print_r($lengths); ?> /* Output Array ( [0] => 5 [1] => 6 [2] => 6 [3] => 7 ) */
Callbacks di User Defined Functions
Fungsi dan metode yang ditentukan pengguna juga dapat menggunakan fungsi callback sebagai argumen. Untuk menggunakan fungsi callback di dalam fungsi atau metode yang ditentukan pengguna, panggil dengan menambahkan tanda kurung ke variabel dan berikan argumen seperti pada fungsi normal:
Contoh :
Jalankan callback dari fungsi yang ditentukan pengguna:
<?php function exclaim($str) { return $str . "! "; } function ask($str) { return $str . "? "; } function printFormatted($str, $format) { // Memanggil fungsi callback $format echo $format($str); } // Berikan "exclaim" dan "ask" sebagai fungsi panggilan balik ke printFormatted () printFormatted("Hello world", "exclaim"); printFormatted("Hello world", "ask"); ?> /*Output Hello world! Hello world? */