我需要调用一个函数:
function something($argument1, $argument2, $data)
其中$ data可以是逗号分隔的任意数量的变量: 1,2,3,4-
所以我打电话来说:
function something ('blue', 'green', 1,2,3)
或
function something ('red', 'black', 1,2,3,4,5,6,7,8,9)
我查看了省略号关键字(...),但我看不出如何使用我的2个静态参数($ argument1和$ argument2)来实现它。
我的直觉是在调用函数并将数组发送到函数之前将逗号分隔成数组?
谢谢!
答案 0 :(得分:1)
我不确切地知道你要做什么,但是,如果你想要一个包含大量参数的函数,并且因为你知道前两个参数是固定的,你可以使用php func_get_args()来获取传递的参数这个功能。
答案 1 :(得分:0)
您可以在使用splat运算符之前包含必需的参数。 splat运算符捕获的所有参数都将以数组形式提供。例如,
function splat_example($arg_1, $arg_2, ...$data_list) {
echo $arg_1 . "\r\n";
echo $arg_2 . "\r\n";
foreach ($data_list as $data) {
echo $data . "\r\n";
}
}
以下,
splat_example('red', 'blue', 1, 2, 3, 4);
会导致,
red
blue
1
2
3
4
在此处查看http://sandbox.onlinephpfunctions.com/code/36d991aeb4321faf8400d0f6fb017efc50ebe567
答案 2 :(得分:0)
您可以将第三个参数作为逗号分隔的字符串传递。 然后你可以用逗号爆炸转换成数组。
功能性的东西('蓝色','绿色',' 1,2,3'){
}