PHP 5.6 — variadic func / splat operator
function func($a, $b, ...$params)
{
var_dump($a, $b, $params);
}
func(1,2,3,4,5);
// int(1)
// int(2)
// array(3) {
// [0]=>
// int(3)
// [1]=>
// int(4)
// [2]=>
// int(5)
// }
// круто!
$a = [1,2,3,4,5];
func(...$a);
// int(1)
// int(2)
// array(3) {
// [0]=>
// int(3)
// [1]=>
// int(4)
// [2]=>
// int(5)
// }
// еще круче!
$a['qq'] = 'qq';
// PHP Catchable fatal error: Cannot unpack array with string keys in /tmp/test.php on line 16
// ну ок
func(...$a);
$b = [];
$b[1] = 1;
$b[4] = 4;
$b[2] = 2;
$b[5] = 5;
$b[3] = 3;
func(...$b);
// int(1)
// int(4)
// array(3) {
// [0]=>
// int(2)
// [1]=>
// int(5)
// [2]=>
// int(3)
// }
// WAT?