「PHPの基礎 - 関数」の版間の差分

ナビゲーションに移動 検索に移動
140行目: 140行目:
なお、引数とは異なり、戻り値として指定できる値は1つのみである。<br>
なお、引数とは異なり、戻り値として指定できる値は1つのみである。<br>
ただし、戻り値として配列も指定できるため、配列を返すことで実質的に複数の値を返すことも可能である。<br>
ただし、戻り値として配列も指定できるため、配列を返すことで実質的に複数の値を返すことも可能である。<br>
<br><br>
== 可変長引数 ==
可変長引数を持つ関数を定義することができる。<br>
<br>
可変長引数は配列として関数内で扱われる。<br>
<u>通常の引数と組み合わせる場合、可変長引数は必ず最後に定義する必要がある。</u><br>
<br>
これには、主に2つの方法がある。<br>
* <code>...</code> (スプラット演算子 / 可変引数演算子) を使用する方法 (PHP 5.6以降)
*: ...演算子を使用する方法が推奨される。
* <code>func_get_args</code>関数を使用する方法 (従来の方法)
<br>
また、型宣言も使用可能である。<br>
<syntaxhighlight lang="php">
// 型宣言の例
function sum(int ...$numbers)
</syntaxhighlight>
<br>
* ...演算子を使用する場合
<syntaxhighlight lang="php">
function sum(...$numbers)
{
    $total = 0;
    foreach ($numbers as $number) {
        $total += $number;
    }
    return $total;
}
// 使用例
echo sum(1, 2, 3, 4, 5);  // 出力: 15
echo sum(10, 20);        // 出力: 30
</syntaxhighlight>
<br>
* func_get_args関数を使用する場合
<syntaxhighlight lang="php">
function multiply()
{
    $numbers = func_get_args();
    $result = 1;
    foreach ($numbers as $number) {
        $result *= $number;
    }
    return $result;
}
// 使用例
echo multiply(2, 3, 4);  // 出力: 24
echo multiply(5, 10);    // 出力: 50
</syntaxhighlight>
<br>
また、通常の引数と可変長引数を組み合わせることもできる。<br>
<syntaxhighlight lang="php">
function greet($greeting, ...$names)
{
    foreach ($names as $name) {
      echo "$greeting, $name!\n";
    }
}
// 使用例
greet("Hello", "Alice", "Bob", "Charlie");
// 出力
Hello, Alice!
Hello, Bob!
Hello, Charlie!
</syntaxhighlight>
<br><br>
<br><br>


案内メニュー