How to work with infinity arguments in a function (like PHP's isset())
function, param, parameter-passing, parameters, php
Solution
`func_get_args` will do what you want:
function infinite_parameters() {
foreach (func_get_args() as $param) {
echo "Param is $param" . PHP_EOL;
}
}
You can also use `func_get_arg` to get a specific parameter (it's zero-indexed):
function infinite_parameters() {
echo func_get_arg(2);
}
But be careful to check that you have that parameter:
function infinite_parameters() {
if (func_num_args() < 3) {
throw new BadFunctionCallException("Not enough parameters!");
}
}
You can even mix together `func_*_arg` and regular parameters:
function foo($param1, $param2) {
echo $param1; // Works as normal
echo func_get_arg(0); // Gets $param1
if (func_num_args() >= 3) {
echo func_get_arg(2);
}
}
But before using it, think about whether you really want to have indefinite parameters. Would an array not suffice?
Problem
You know how PHP's `isset()` can accept multiple (no limit either) arguments? Like I can do: ``` isset($var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$var11); //etc etc ``` How would I be able to do that in my own function? How would I be able to work with infinity arguments passed? How do they do it?