I want to use values in an array as independent arguments in a function call. Example:
// Values "a" and "b"
$arr = array("alpha", "beta");
// ... are to be inserted as $a and $b.
my_func($a, $b)
function my_func($a,$b=NULL) { echo "{$a} - {$b}"; }
The number of values in the array are unknown.
Possible solutions:
I can pass the array as a single argument - but would prefer to pass as multiple, independent function arguments.
implode()
the array into a comma-separated string. (Fails because it's just one string.)
Using a single parameter:
$str = "'a','b'";
function goat($str); // $str needs to be parsed as two independent values/variables.
Use eval()
?
Traverse the array?
Suggestions are appreciated. Thanks.
Method 1: Using the apply() method: The apply() method is used to call a function with the given arguments as an array or array-like object. It contains two parameters. The this value provides a call to the function and the arguments array contains the array of arguments to be passed.
arguments is an Array -like object accessible inside functions that contains the values of the arguments passed to that function.
To pass an array as a prop to a component in React, wrap the array in curly braces, e.g. <Books arr={['A', 'B', 'C']} /> . The child component can perform custom logic on the array or use the map() method to render the array's elements. Copied!
This question is fairly old but there is finally more direct support for this in PHP 5.6+:
http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list.new
$arr = array("alpha", "beta");
my_func(...$arr);
if I understand you correctly:
$arr = array("alpha", "beta");
call_user_func_array('my_func', $arr);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With