Hey, I was working with a PHP function that takes multiple arguments and formats them. Currently, I'm working with something like this:
function foo($a1 = null, $a2 = null, $a3 = null, $a4 = null){ if ($a1 !== null) doSomethingWith($a1, 1); if ($a2 !== null) doSomethingWith($a2, 2); if ($a3 !== null) doSomethingWith($a3, 3); if ($a4 !== null) doSomethingWith($a4, 4); }
But I was wondering if I can use a solution like this:
function foo(params $args){ for ($i = 0; $i < count($args); $i++) doSomethingWith($args[$i], $i + 1); }
But still invoke the function the same way, similar to the params keyword in C# or the arguments array in JavaScript.
func_get_args
returns an array with all arguments of the current function.
If you use PHP 5.6+, you can now do this:
<?php function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); ?>
source: http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list
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