Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Spread Syntax in Array Declaration

PHP supports the spread syntax for variadic functions.

In JavaScript, you can use the spread syntax to do this:

var a = [1, 2]; var b = [...a, 3, 4]; console.log(b); // [1, 2, 3, 4] 

However, trying to do this in PHP:

$a = [1, 2]; $b = [...$a, 3, 4]; var_dump($b);die; 

Results in this error:

Parse error: syntax error, unexpected '...' (T_ELLIPSIS), expecting ']'

Is using the spread syntax this way not allowed in PHP? If so, is there an equally-as-elegant way to achieve the same effect?

like image 588
Nathan Arthur Avatar asked Jul 31 '17 14:07

Nathan Arthur


Video Answer


1 Answers

The spread operator in the arrays RFC has been implemented in PHP 7.4:

$ary = [3, 4, 5]; return [1, 2, ...$ary]; // same as [1, 2, 3, 4, 5] 

Caveat: The unpacked array/Traversable can only have integer keys. For string keys array_merge() is still required.

like image 63
Erald Karakashi Avatar answered Oct 02 '22 08:10

Erald Karakashi