Python provides the "*" operator for unpacking a list of tuples and giving them to a function as arguments, like so:
args = [3, 6]
range(*args) # call with arguments unpacked from a list
This is equivalent to:
range(3, 6)
Does anyone know if there is a way to achieve this in PHP? Some googling for variations of "PHP Unpack" hasn't immediately turned up anything.. perhaps it's called something different in PHP?
You can use
call_user_func_array()
to achieve that:call_user_func_array("range", $args);
to use your example.You should use the call_user_func_array
http://www.php.net/call_user_func_array
or use the reflection api http://www.php.net/oop5.reflection
In
php5.6
the...
operator has been added. Using it, you can get rid ofcall_user_func_array()
for this simpler alternative. For example having a functionand your array
$list = [4, 6];
(after php5.5 you can declare arrays in this way). You can call your function with...
:echo add(...$list);
In certain scenarios, you might consider using
unpacking
, which is possible in php, is a similar way to python:This is how I have arrived to this answer at least. Google search:
PHP argument unpacking