可変長引数とは、関数を呼ぶときに関数に渡す引数の数が決まっていない関数の引数の形式のことです。C/C++のprintf()関数は可変長引数の代表ですね。出力対象の変数の分だけ、引数が増えていきます。
// C/C++ void function(void) { int a,b,c; printf("%d",a); printf("%d %d",a,b); printf("%d %d %d",a,b,c); }
このような、可変長引数の関数をPHPで使う方法です。
<?php test(1,2,3); function test(...$data) { $count=count($data); echo "配列数=={$count}<br>"; for($i=0;$i<$count;$i++){ $val=$data[$i]; echo "\$data[{$i}]=={$val}<br>"; } } ?>
引数の前に...を付加すると、可変長引数になり配列として変数が渡されます。関数の記述方式は、C/C++と似ていますね。
配列数==3 $data[0]==1 $data[1]==2 $data[2]==3
実行結果はこのようになります。