The call_user_func() is an inbuilt function in PHP which is used to call the callback given by the first parameter and passes the remaining parameters as argument. It is used to call the user-defined functions.
Syntax:
mixed call_user_func ( $function_name[, mixed $value1[, mixed $... ]])
Here, mixed indicates that a parameter may accept multiple types.
Parameter: The call_user_func() function accepts two types of parameters as mentioned above and described below:
- $function_name: It is the name of function call in the list of defined function. It is a string type parameter.
- $value: It is mixed value. One or more parameters to be passed to the function.
Return Value: This function returns the value returned by the callback function.
Below programs illustrate the call_user_func() function in PHP:
Program 1: Call the function
<?php function GFG( $value ) { Â Â Â Â echo "This is $value site.\n" ; } Â Â call_user_func( 'GFG' , "neveropen" ); call_user_func( 'GFG' , "Content" ); Â Â ?> |
This is neveropen site. This is Content site.
Program 2: call_user_func() using namespace name
<?php   namespace Geeks;   class GFG {     static public function demo() {         print "GeeksForGeeks\n" ;     } }   call_user_func(__NAMESPACE__ . '\GFG::demo' );   // Another way of declaration call_user_func( array (__NAMESPACE__ . '\GFG' , 'demo' ));   ?> |
GeeksForGeeks GeeksForGeeks
Program 3: Using a class method with call_user_func()
<?php   class GFG {     static function show()     {         echo "Geeks\n" ;     } }   $classname = "GFG" ; call_user_func( $classname . '::show' );   // Another way to use object $obj = new GFG(); call_user_func( array ( $obj , 'show' ));   ?> |
Geeks Geeks
Program 4: Using lambda function with call_user_func()
<?php call_user_func( function ( $arg ) { print "$arg\n" ; }, 'neveropen' ); ?> |
neveropen
References: http://php.net/manual/en/function.call-user-func.php