PHP 5.6 introduced variable-length argument lists (a.k.a. varargs, variadic arguments), using the ... token before the argument name to indicate that the parameter is variadic, i.e. it is an array including all supplied parameters from that one onward.
Type names can be added in front of the ...:
The & reference operator can be added before the ..., but after the type name (if any). Consider this example:
On the other hand, an array (or Traversable) of arguments can be unpacked to be passed to a function in the form of an argument list:
Compare with this snippet without using ...:
Therefore, redirect functions for variadic functions can now be easily made, for example:
Apart from arrays, Traversables, such as Iterator (especially many of its subclasses from SPL) can also be used.
Variables inside functions is inside a local scope like this