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:
<?php // PHP program to illustrate working // of a standard callback // Function to print a string function someFunction() { echo "Geeksforzambiatek \n"; } // Standard callback call_user_func('someFunction'); ?> |
Geeksforzambiatek
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 Geeksforzambiatek \n"; } } class Article extends GFG { // Function to print a string static function someFunction() { echo "Geeksforzambiatek 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')); ?> |
Geeksforzambiatek Article Geeksforzambiatek Article Parent Geeksforzambiatek
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 "Geeksforzambiatek \n"; } // Function used to print a string public function __invoke() { echo "invoke Geeksforzambiatek \n"; } } // Class object $obj = new GFG(); // Object method call call_user_func(array($obj, 'someFunction')); // Callable __invoke method object call_user_func($obj); ?> |
Geeksforzambiatek invoke Geeksforzambiatek
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("Geeksforzambiatek", "GFG", "Article"); // Callable closure array_map($print_function, $string_array); ?> |
Geeksforzambiatek GFG Article



