PHP 8.0 のリリースにより、多くの興味深い便利な機能が登場しました。その 1 つが可変個引数型パラメーターです。この機能により、関数パラメーターは文字列、配列、オブジェクトなど、複数の種類の値を受け入れることができます。
ここで、この新機能の具体的な使用法と、その考えられる影響を見てみましょう。
いわゆる変数型パラメータは、関数定義で ....
を使用して定義されたパラメータを指します。これは、可変長パラメータとも呼ばれます。公式 PHP ドキュメントでは可変長引数リストとして知られています。
このタイプのパラメーターは、関数が受け入れることができる複数のパラメーターを定義するために、関数のパラメーター リストの最後でのみ使用できます。関数内で func_get_args()
および func_num_args()
を使用して、これらのパラメーターに関する情報を取得できます。
PHP の以前のバージョンでは、通常、関数パラメータ リスト内の各パラメータのデータ型を定義することによって、関数入力の型を制限していました。たとえば、次の関数定義では、入力パラメータ $x
および $y
のデータ型を整数に制限します。
function sum(int $x, int $y): int { return $x + $y; } echo sum(1, 2); // 输出 3 echo sum(1.0, 2); // 报错:$x 必须是一个整数
この例では、関数 ## を定義します。 #sum() は 2 つの整数パラメータ
$x と
$y を受け取り、それらを加算して結果を返します。呼び出し時に渡すパラメーターの型が定義を満たしていない場合、PHP はエラーをスローします。
function foo(...$args) { var_dump($args); } foo(1, 2, "hello world"); // 输出: array(3) { [0]=> int(1) [1]=> int(2) [2]=> string(11) "hello world" }この例では、可変個引数構文
...$args を使用して関数
foo() を定義し、任意の数のパラメーターを受け取ることができるようにします。次に、
var_dump() を使用してすべてのパラメータを出力します。
function average(...$numbers) { if (count($numbers) === 0) { return 0; } return array_sum($numbers) / count($numbers); } echo average(1, 2, 3); // 输出 2 echo average(1.5, -2.5, 3); // 输出 0.66666666666667この例では、関数
average() を定義し、使用する値を計算します。すべての入力数値の平均。可変個引数パラメーターを使用すると、さまざまな数のパラメーターをサポートするために複数の関数を定義する必要がなく、任意の数の数値を受け入れることができます。
以上がPHP8.0の変数型パラメータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。