PHP:如何使用修复参数和许多以逗号分隔的参数调用函数

时间:2016-11-20 17:40:57

标签: php function arguments

我需要调用一个函数:

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)来实现它。

我的直觉是在调用函数并将数组发送到函数之前将逗号分隔成数组?

谢谢!

3 个答案:

答案 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'){

}