PHP 的可变长度参数 `...` 标记应该指什么?

What should PHP's variable-length argument `...` token be referred to as?

我最近了解到 PHP 的 ... 标记(参考 docs),它用于支持可变长度参数列表。这个令牌的术语是什么或者它是如何发音的?如果它没有名字,它们在另一种有名字的语言中是否有任何类似的功能?

TL;DR: 标记名称是 'T_ELLIPSIS',在函数声明中使用使这个函数成为 'variadic',在调用带有保存参数的数组的函数时使用,它被称为 'argument unpacking'.


它的名字是 T_ELLIPSIS,我发现在 psysh-session 中使用 token_get_alltoken_name

>>> token_get_all('<?php function testit(...$a) { echo $args;}')
=> [
 [
   379,
   "<?php ",
   1,
 ],
....
 [
   391,
   "...",
   1,
 ],
....
>>> token_name(391)
=> "T_ELLIPSIS"
>>> 

编辑:我可能从字面上理解你的意思——我以为你问的是令牌名称,但考虑到否决票,我怀疑你的意思是,程序员如何在演讲和写作中引用它(显然“splat”,根据评论)

编辑 2:在最后一个参数之前的函数定义中使用,在其他语言中,在 PHP 中用省略号定义的函数将被称为 'variadic function':

>>> function f(...$a) { return $a; }
>>> f(1, 2, 3, 4)
=> [
     1,
     2,
     3,
     4,
   ]
>>> 

编辑 3:最后:如果您有一个包含要传递给函数的值的数组,您可以使用 ... 实现“参数解包”

>>> function f($a, $b, $c) { return "{$a}-{$b}-{$c}"; }
>>> f(...[1,2,3]);
=> "1-2-3"
>>>