Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
336 views
in Technique[技术] by (71.8m points)

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?

question from:https://stackoverflow.com/questions/45419150/php-spread-syntax-in-array-declaration

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...