関数に渡された引数の数を返す

# func_num_args

(PHP 4, PHP 5, PHP 7)

func_num_args — 関数に渡された引数の数を返す

### 説明

func_num_args ( void ) : int

関数に渡された引数の数を取得します。

この関数は func_get_arg() および func_get_args() と組み合わせて使用され、 ユーザー定義関数において可変長の引数リストを使用することができるようになります。

### 返り値

現在のユーザー定義関数に渡された引数の数を返します。

### 変更履歴

バージョン | 説明
--- | ---
5.3.0 | この関数はパラメータリスト内で使用できるようになりました。
5.3.0 | ある関数内で include や require を使って別のファイルを読み込んでいるときに 別のファイル側からこの関数をコールすると、警告を発生して -1 を返すようになりました。

### エラー / 例外

ユーザー定義関数の外部からコールされた場合に警告を発生します。

### 例

例1 func_num_args() の例

`<?php
function foo()
{
$numargs = func_num_args();
echo "引数の数: $numargs\n";
}
foo(1, 2, 3);
?>`

上の例の出力は以下となります。

    引数の数: 3

例2 func_num_args() の PHP 5.3 前後の例

`test.php
<?php
function foo() {
include './fna.php';
}
foo('First arg', 'Second arg');
?>
fna.php
<?php
$num_args = func_num_args();
var_export($num_args);
?>`

PHP 5.3 より前のバージョンでの出力は、このようになります。

    2

PHP 5.3 以降のバージョンでの出力は、このようになります。

    Warning: func_num_args():  Called from the global scope - no function
    context in /home/torben/Desktop/code/ml/fna.php on line 3
    -1

### 注意

> 注意:

> この関数は、 カレントスコープに依存してパラメータの詳細を決定しますので、 5.3.0 より前のバージョンでは関数パラメータとして使用することができません。 もし、この値を渡さなければならない場合、戻り値を変数に割り当て、 その変数を渡してください。

### 参考

- PHP 5.6 以降の ... 構文
- func_get_arg()
- func_get_args()
- ReflectionFunctionAbstract::getNumberOfParameters()