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);
}
}
但在使用之前,请考虑您是否真的希望有不确定的参数。数组不能满足吗?