概要
JavaScriptにあるスプレッド構文と同じようなものがPHP7.4から使用できるようになってました。
$insects = ["🐛", "🐝"];
$animals = ["🐱", "🐶", "🐇"];
$creatures = [...$insects, ...$animals];
dd($creatures);
結果
array:5 [▼
0 => "🐛"
1 => "🐝"
2 => "🐱"
3 => "🐶"
4 => "🐇"
]
$insects = ["🐛", "🐝"];
$animals = ["🐱", "🐶", "🐇"];
$fishes = ["🐟", "🐠"];
$creatures = [...$insects, ...$animals, ...$fishes];
dd($creatures);
結果
array:7 [▼
0 => "🐛"
1 => "🐝"
2 => "🐱"
3 => "🐶"
4 => "🐇"
5 => "🐟"
6 => "🐠"
]
PHP7.4 注意点
文字列がキーだと結合出来ません。
$insects = ["ようちゅう" => "🐛", "はち" => "🐝"];
$fishes = ["さかな1" => "🐟", "さかな2" => "🐠"];
$creatures = [...$insects, ...$fishes];
dd($creatures);
Error
Cannot unpack array with string keys
しかしPHP8.1から
文字列のキーも対応し、array_mergeで実現出来る事はスプレッド構文でも実現出来るようになりました。
追記
php5系からでも関数の引数に渡したり受け取る時には使えたみたいです。
参考