PHPにおける「...
」は「スプレッド演算子」または「引数のアンパック演算子」と呼ばれています。これは、配列を展開して、関数の引数として渡す際に便利です。
具体的には、配列を要素ごとに展開して array_merge()
などの関数に渡す場合に使用されます。通常、array_merge()
は複数の配列を引数に取りますが、2次元配列を引数として渡すときには、その各配列を個別に渡す必要があります。スプレッド演算子を使うことで、2次元配列の各要素(配列)を1つずつ引数として展開して渡せるようになります。
スプレッド演算子の例
通常の array_merge() の使い方
<?php
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
// 配列を結合
$mergedArray = array_merge($array1, $array2);
print_r($mergedArray); // [1, 2, 3, 4, 5, 6]
?>
スプレッド演算子 ... の使い方
<?php
$array = [
[1, 2, 3],
[4, 5, 6],
];
// スプレッド演算子を使って配列を展開し、結合
$mergedArray = array_merge(...$array);
print_r($mergedArray); // [1, 2, 3, 4, 5, 6]
?>
スプレッド演算子の役割
...$array
は、$array
の中の各要素([1, 2, 3]
や[4, 5, 6]
)を、それぞれ個別の引数としてarray_merge()
に渡しています。- もしスプレッド演算子を使わずに、単に
$array
を渡すと、2次元配列のまま1つの引数として渡されてしまい、期待どおりに動作しません。
スプレッド演算子なしの例(間違った使用例)
<?php
$array = [
[1, 2, 3],
[4, 5, 6],
];
// スプレッド演算子を使わないと、2次元配列が結合されない
$mergedArray = array_merge($array);
print_r($mergedArray); // これはエラーが発生します
?>
まとめ
...
(スプレッド演算子)を使うことで、2次元配列を各配列ごとに展開して array_merge()
に渡すことができ、正しく配列を結合できます。