如果我有一个接受 splat 参数的 PHP 函数:function1(...$parms1) {...}我从另一个也接受 splat 参数的函数调用这个函数:function2(...$parms2) {function1($parms2);}function1 的调用似乎将 function2 parms 包装到另一个数组中(即 function1 看到数组中的数组)。反正从传递PARMS的function2到function1原样,没有第二个参数数组的隐式创作?不要误会我的意思,我可以看到 PHP 正在做我要求它做的事情,但是如果我可以将function2splat 直接传递给function1.任何建议将不胜感激。
1 回答

繁华开满天机
TA贡献1816条经验 获得超4个赞
这种方法非常简单:
function2(...$parms2) {
// stuff happens...
// then call function1
function1(...$parms2);
}
Splat 也适用于通话。
检查PHP 文档中的函数参数。在示例 #14 中,您可以看到...used 接受当前正在执行的参数。在示例 #15 中,您可以看到它用于提供参数,就像我在这里展示的那样。
$parms2不是特定于可变长度参数的某种特殊类型的可迭代对象,它只是一个普通数组。这就是为什么您会在 中看到“数组中的数组” function1(),但这也意味着...当您使用它调用function1().
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消