在PHP中向可变参数函数传递数组

24

我在 PHP 7 中定义了一个可变参数类型的方法

function selectAll(string $sql, ...$params) { }

我遇到的问题是有时候我想在已经有一个数组的情况下调用这个方法,但是我不能直接将一个数组变量传递给这个方法。

1个回答

36
使用展开操作符来解包数组参数,就像你在函数中使用的那样:
selectAll($str, ...$arr);

就像这样:

function selectAll(string $sql, ...$params) { 
    print_r(func_get_args());
}

$str = "This is a string";
$arr = ["First Element", "Second Element", 3];

selectAll($str, ...$arr);

输出:

Array
(
    [0] => This is a string
    [1] => First Element
    [2] => Second Element
    [3] => 3
)

单击此处进行评估。


如果您在参数中不使用展开运算符,您最终会像这样


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接