PHP – 関数 – 可変長引数

…$args

関数の引数を...変数名のように指定すると、任意の個数の変数を渡すことができる。

受け取った関数では、配列$argsの各要素に引数の値がセットされている(要素数が0や1の場合も配列)。

型の混在

上の例ではstring型を指定して全ての引数を文字列として扱っていて、すべての値がstring型である(あるいはキャスト可能である)必要がある。

型を指定しない場合は、与えられたそれぞれの引数の型のままで配列に格納される。

単純引数との混在

最後尾は可能

通常の引数が並んだその後、最後尾に可変長引数を置くことができる。

可変長以外の引数はデフォルト値がなければ省略できないが、可変長引数は0個でもよい。

先頭や中間は不可

可変長引数を先頭や単純引数の間に置くことはできない。

逆の使い方

複数の引数を...$arrayで受けると、それらを要素とした$arrayが得られる。逆に$arrayが配列の時...$arrayは分解された各要素を返す

これらはコレクションでもないばらばらの値なので、echoで出力したりforeachで使うことはできない。

以下の例では、配列を1つ1つの要素に分解して、それらを引数に与えて最大値・最小値を得ている。

以下の例では、2つの引数を配列の要素として準備して関数に与えている。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です