PHPの可変長引数関数(Variadic Functions)の使用方法と例


  1. 基本的な可変長引数関数の宣言と使用方法

可変長引数を受け取る関数を宣言するには、引数リストの前に「...」を付けて宣言します。以下は基本的な構文の例です。

function functionName(...$args) {
  // 可変長引数を処理するコード
}

関数内で可変長引数を処理するには、配列として受け取った引数をループ処理することが一般的です。

function sum(...$numbers) {
  $total = 0;
  foreach ($numbers as $number) {
    $total += $number;
  }
  return $total;
}
echo sum(1, 2, 3, 4);  // 結果: 10
  1. 可変長引数関数と固定引数の併用

可変長引数関数は、他の固定の引数と併用することもできます。

function greet($greeting, ...$names) {
  foreach ($names as $name) {
    echo $greeting . ', ' . $name . '!' . PHP_EOL;
  }
}
greet('こんにちは', '太郎', '花子', '次郎');
// 結果:
// こんにちは, 太郎!
// こんにちは, 花子!
// こんにちは, 次郎!
  1. 可変長引数関数に配列を渡す

配列を可変長引数関数に渡す場合は、配列の前に「...」を付けて渡すことができます。

function greet($greeting, ...$names) {
  foreach ($names as $name) {
    echo $greeting . ', ' . $name . '!' . PHP_EOL;
  }
}
$names = ['太郎', '花子', '次郎'];
greet('こんにちは', ...$names);
// 結果:
// こんにちは, 太郎!
// こんにちは, 花子!
// こんにちは, 次郎!

これらは可変長引数関数の基本的な使用方法と例です。可変長引数を活用することで、柔軟な関数を作成することができます。関数の引数の数が事前にわからない場合や、可変的な引数の処理が必要な場合に便利です。