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