Skip to content

Instantly share code, notes, and snippets.

@woprrr
Last active March 4, 2020 18:10
Show Gist options
  • Save woprrr/76c05964b0f7daf60f515857a74e83d1 to your computer and use it in GitHub Desktop.
Save woprrr/76c05964b0f7daf60f515857a74e83d1 to your computer and use it in GitHub Desktop.
PHP 7.4 Spread Operator in Array Expression examples. Try it now : https://3v4l.org/hfFZm
<?php
# Forget array_merge PHP 7.4 Spread Operator in Array Expression.
# ONLY FOR PHP 7.4 +
#/!\ PERFORMANCE BEST PRACTIVE /!\
$args = ['foo', 'bar', 'baz'];
$arr = [...$args, 'buz'];
var_dump($arr);
# MULTIPLE SPREAD
$arr1 = [1, 2, 3];
$arr2 = [4, 5, 6];
$arr3 = [...$arr1, ...$arr2];
$arr4 = [...$arr1, ...$arr3, 7, 8, 9];
var_dump($arr4);
# SPREAD WITH FUNCTION
function buildArray()
{
return ['red', 'green', 'blue'];
}
$arr5 = [...buildArray(), 'pink', 'violet', 'yellow'];
var_dump($arr5);
# SPREAD WITH GENERATOR
function generator() {
for ($i = 3; $i <= 5; $i++) {
yield $i;
}
}
$arr6 = [0, 1, 2, ...generator()];
var_dump($arr6);
# SPEACIAL USECASE WHEN YOU NEED TO UNPACK ELEMENT WITH REFERENCE
# $arr1 = ['red', 'green', 'blue'];
# $arr2 = [...&$arr1];
# This will throw a syntax error because ...& isn't supported yet
# To do that you will use another way like this :
$arr7 = 'red';
$arr8 = [&$arr7, 'green', 'blue'];
$arr9 = ['white', ...$arr8, 'black'];
var_dump($arr9);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment