PHPCallback Functions
PHP Callback Functions
A callback function is a function that is passed as anargument into another function.
A callback function can be:
- A named function - pass the function name as a string
- An anonymous function - define a function inline, and pass it as an argument
Use a Named Function as a Callback
Any existing function can be used as a callback function. To use a named function as a callbackfunction, pass a string containing the name of the function as the argument of anotherfunction:
Example
Pass a callback function to PHP'sarray_map() function to multiply each number with itself for each number in an array:
// Define the named callback function
function myfunction($n) {
return($n * $n);
}
// Array of numbers to multiply
$numbers = [1, 2, 3, 4, 5];
// Use array_map with the myfunction function as a callback
print_r(array_map("myfunction", $numbers));
?>
Use an Anonymous Function as a Callback
An anonymous function is defined inline, and is most often used when a one-off function is needed.
Here we pass an anonymous function as a callback function:
Example
Use an anonymous function as a callback for PHP'sarray_map() function:
$numbers = [1, 2, 3, 4, 5];
$res = array_map(function($n) {return($n * $n);}, $numbers);
print_r($res);
?>
PHP Callbacks in User Defined Functions
User-defined functions and methods can also take callback functions as arguments. To use callback functions inside a user-defined function or method, call it by adding parentheses to the variable and pass arguments as with normal functions:
Example
Run a callback from a user-defined function:
function exclaim($str) {
return $str . "! ";
}
function ask($str) {
return $str . "? ";
}
function printFormatted($str, $format) {
echo $format($str);
}
// Pass "exclaim" and "ask" as callback functions to printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>

