Implementing callback in PHP

In PHP, callback is a function object/reference with type callable. A callback/callable variable can act as a function, object method and a static class method. There are various ways to implement a callback. Some of them are discussed below:

Standard callback: In PHP, functions can be called using call_user_func() function where arguments is the string name of the function to be called.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to illustrate working
// of a standard callback
  
// Function to print a string
function someFunction() {
    echo "Geeksforgeeks \n";
}
  
// Standard callback
call_user_func('someFunction');
?>

chevron_right


Output:

Geeksforgeeks

Static class method callback: Static class methods can be called by using call_user_func() where argument is an array containing the string name of class and the method inside it to be called.



Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to illustrate working
// of a Static class method callback
  
// Sample class
class GFG {
  
    // Function used to print a string
    static function someFunction() {
        echo "Parent Geeksforgeeks \n";
    }
}
  
class Article extends GFG {
  
    // Function to print a string
    static function someFunction() {
        echo "Geeksforgeeks Article \n";
    }   
}
  
// Static class method callback
call_user_func(array('Article', 'someFunction'));
  
call_user_func('Article::someFunction');
  
// Relative Static class method callback
call_user_func(array('Article', 'parent::someFunction'));
?>

chevron_right


Output:

Geeksforgeeks Article
Geeksforgeeks Article
Parent Geeksforgeeks

Object method callback: Object methods can be called by using call_user_func() where argument is an array containing the object variable and the string name of method to be called. Object method can also be called if they are made invokable using __invoke() function definition. In this case, argument to the call_user_func() function is the object variable itself.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to illustrate working
// of a object method callback
  
// Sample class
class GFG {
  
    // Function to print a string
    static function someFunction() {
        echo "Geeksforgeeks \n";
    }
  
    // Function used to print a string
    public function __invoke() {
        echo "invoke Geeksforgeeks \n";
    }
}
  
// Class object
$obj = new GFG();
  
// Object method call
call_user_func(array($obj, 'someFunction'));
  
// Callable __invoke method object 
call_user_func($obj);
  
?> 

chevron_right


Output:

Geeksforgeeks
invoke Geeksforgeeks

Closure callback: Closure functions can be made callable by making standard calls or mapping closure function to array of valid arguments given to the closure function using array_map() function where arguments are the closure function and an array of its valid arguments.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to illustrate working
// of a closure callback
  
// Closure to print a string
$print_function = function($string) {
    echo $string."\n";
};
  
// Array of strings
$string_array = array("Geeksforgeeks", "GFG", "Article");
  
// Callable closure
array_map($print_function, $string_array);
  
?>

chevron_right


Output:

Geeksforgeeks
GFG
Article


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.