現在の位置: ホーム> 最新記事一覧> PHP関数のパラメータに「…」を追加する使い方の詳しい解説と実践例

PHP関数のパラメータに「…」を追加する使い方の詳しい解説と実践例

M66 2025-10-15

PHPでパラメータの前に「...」を追加する意味

PHP 開発では、多くの場合、不特定の数のパラメーターを受け取る関数を作成する必要があります。このシナリオを解決するために、PHP はパラメーターの前に 3 つのドット (...) を追加して可変長の引数リスト (可変長引数リスト) を実装するという簡潔な構文を提供します。この機能により、固定数のパラメーター名を事前に定義することなく、関数内のさまざまな数のパラメーターを柔軟に処理できるようになります。

可変引数関数を定義するには「...」を使用します

以下は、「...」を使用して、任意の数のパラメーターを受け取ることができる関数を定義する方法を示す簡単な例です。

 function add(...$numbers) {
    $sum = 0;
    foreach ($numbers as $num) {
        $sum += $num;
    }
    return $sum;
}

// テスト add() 関数
echo add(1, 2, 3, 4, 5); // 出力:15
echo add(10, 20, 30);   // 出力:60

上記の例では、関数add()は "..." を使用して変数パラメーター リスト$numbersを宣言します。 PHP は、渡されたすべての引数を配列に自動的にパックするため、関数の反復処理と結果の計算が容易になります。

func_get_args() と func_num_args() を使用して変数引数を処理します

「...」構文に加えて、PHP は同様の機能を実現する 2 つの関数も提供します。

  • func_get_args() : すべての受信パラメータを取得し、配列として返します。
  • func_num_args() : 渡された引数の数を返します。

以下のコードは、これら 2 つの関数の使用方法を示しています。

 function printArgs() {
    $numArgs = func_num_args();
    $args = func_get_args();

    echo "Number of arguments: {$numArgs}\n";

    foreach ($args as $index => $arg) {
        echo "Argument {$index}: {$arg}\n";
    }
}

// テスト printArgs() 関数
printArgs('apple', 'banana', 'cherry', 'date');

上記の方法により、入力されるパラメータの数に関わらず動的に扱うことができ、柔軟な対応が可能となります。 「...」構文と比較して、この方法は関数パラメータ定義を直接変更できない場合の使用に適しています。

要約する

「...」構文またはfunc_get_args()一連の関数を使用すると、PHP 関数の設計をより柔軟で多用途にすることができます。ツール関数を作成する場合でも、フレームワークの基礎となるロジックを実装する場合でも、これらの機能はコードのスケーラビリティと保守性を効果的に向上させることができます。

PHP の可変パラメーターの特性を理解し、合理的に使用することで、開発者はより簡潔で効率的なコードを作成し、プロジェクト開発のためのより柔軟なソリューションを提供できます。