PHP入門

可変長引数 | 初心者でもわかるPHP入門

2021年6月22日

はじめに

前回の記事では、PHPの「値渡し」と「参照渡し」について紹介しました。

本記事では、PHPの可変長引数について紹介します。

可変長引数

可変長引数とは、引数の数が決まっていない引数のことです。ピリオドを3つ「...」書くことで、可変長引数を表します。

可変長引数の書き方は次のとおりです。

可変長引数の例

可変長引数の使用例

それでは、実際にPHPのプログラムで可変長引数の使い方を紹介します。

スポンサーリンク

次の例では、関数「total」の引数に可変長引数「...$score」を使用しています。そして、関数「total」を呼び出す時は「total(2,4,5)」のようにカンマ区切りで引数を指定しています。

可変長引数は引数の数が決まっていないので、何個でも引数を渡せます。そして、関数の可変長引数として指定した変数に配列として渡されます。

[可変長引数の例]

<?php

function total(...$score) {
    $totalScore = 0;

    foreach($score as $value) {
        // スコアを加算
        $totalScore += $value;
    }

    // 合計値を返す
    return $totalScore;
}

// 関数の実行
$totalScore = total(2,4,5);
// 合計スコアを出力
print("合計スコア:$totalScore");

?>

[実行結果]

合計スコア:11

関数を呼び出す時に使う「...」

可変長引数のときに使うピリオド3つ「...」は、次のように関数を呼び出すときに使うこともできます。

可変長の呼び出し方

固定長の引数(上の例では$a, $b, $c)に対して、「...」を使って引数に配列を指定する(上の例では...$array)ことで配列の値を展開して、固定長の引数にあてはめられます。

[関数を呼び出す時に使うピリオド3つの例]

<?php

function sum($a, $b, $c) {
    return $a + $b + $c;
}

$array = array(1,2,3);
// 関数の実行
$totalValue = sum(...$array);
// 合算値を出力
print("合算値:$totalValue");

?>

[実行結果]

合算値:6

上記の例では、関数「sum」の引数に固定長の引数を3つ指定しています。そして、関数「sum」を呼び出すときに「sum(...$array)」のようにピリオド3つ「...」を使い引数に配列を指定しています。

関数「sum」の引数には、配列「$array」の値が展開され、次のように格納されています。

  • 関数「sum」の引数「$a」:$arrayの0番目の値「1」
  • 関数「sum」の引数「$b」:$arrayの1番目の値「2」
  • 関数「sum」の引数「$c」:$arrayの2番目の値「3」

そして、実行結果には「$a」と「$b」と「$c」が加算された値「6」という結果が出力されています。

終わりに

本記事では、PHPの可変長引数について紹介しました。

次回の記事では、変数のスコープ(ローカル変数、グローバル変数、静的変数)について紹介します。

helpful