PHP Callback Functions
PHP Callback Functions
A callback function is a function that is passed as an argument 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 callback function, pass a string containing the name of the function as the argument of another function:
Example
Pass a callback function to PHP's
array_map() function to multiply each
number with itself for each number in an array:
<?php
// 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));
?>
Try it Yourself »
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's
array_map() function:
<?php
$numbers = [1, 2, 3, 4, 5];
$res = array_map(function($n)
{return($n * $n);}, $numbers);
print_r($res);
?>
Try it Yourself »
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:
<?php
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");
?>
Try it Yourself »