Ответ 1
func_get_args
будет делать то, что вы хотите:
function infinite_parameters() {
foreach (func_get_args() as $param) {
echo "Param is $param" . PHP_EOL;
}
}
Вы также можете использовать func_get_arg
для получения определенного параметра (нулевой индексации):
function infinite_parameters() {
echo func_get_arg(2);
}
Но будьте осторожны, чтобы убедиться, что у вас есть этот параметр:
function infinite_parameters() {
if (func_num_args() < 3) {
throw new BadFunctionCallException("Not enough parameters!");
}
}
Вы можете даже смешивать func_*_arg
и регулярные параметры:
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);
}
}
Но прежде чем использовать его, подумайте, действительно ли вы хотите иметь неопределенные параметры. Не хватит ли массива?