Home » Php » PHP, how to pass func-get-args values to another function as list of arguments?

PHP, how to pass func-get-args values to another function as list of arguments?

Posted by: admin April 23, 2020 Leave a comment

Questions:

I want to create a function (my_function()) getting unlimited number of arguments and passing it into another function (call_another_function()).

function my_function() {    
   another_function($arg1, $arg2, $arg3 ... $argN);    
}

So, want to call my_function(1,2,3,4,5) and get calling another_function(1,2,3,4,5)

I know that I shoud use func_get_args() to get all function arguments as array, but I don’t know how to pass this arguments to another function.

Thank you.

How to&Answers:

Try call_user_func_array:

function my_function() {    
    $args = func_get_args();
    call_user_func_array("another_function", $args);
}

In programming and computer science, this is called an apply function.

Answer:

Use call_user_func_array
like

call_user_func_array('another_function', func_get_args());

Answer:

It’s not yet documented but you might use reflection API, especially invokeArgs.

(maybe I should have used a comment rather than a full post)