The Wayback Machine - https://web.archive.org/web/20230422102325/https://www.geeksforgeeks.org/implementing-callback-in-php/
Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Implementing callback in PHP

Improve Article
Save Article
Like Article
author
Harshit Saini
proficient
27 published articles
Improve Article
Save Article
Like Article

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:




<?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');
?>

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:




<?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'));
?>

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:




<?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);
  
?> 

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:




<?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);
  
?>

Output:

Geeksforgeeks
GFG
Article

My Personal Notes arrow_drop_up
Last Updated : 21 Dec, 2018
Like Article
Save Article
Similar Reads
Related Tutorials