func_num_args: 関数に渡された引数の数を返す (関数処理 関数) - PHPプロ!マニュアル

PHPマニュアル

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

func_num_args

(PHP 4, PHP 5)

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

説明

int func_num_args ( void )

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

この関数は 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(123);
?>

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

引数の数: 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マニュアル



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)