13,005
回編集
(→戻り値) |
|||
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> | ||