[PHP-users 14213] Re: 引数の数を調べる

WADA Masashi php-users@php.gr.jp
2003年 3月 24日 (月) 08:45:45 JST


 和田です。

Koji Yamamoto wrote:
>=============================================================
>function foo($arg1,$arg2,$arg3="hoge",$arg4="moge"){
>    (省略)
>}
>
>foo($var1,$var2);
>
>=============================================================
>
>といったような,初期値を持つ引数がある関数の場合で,
>関数内で func_num_args() などを使えば,
>関数として渡された数,この場合ですと [2] になりますが,
>そうではなく,関数自体の引数の数である [4] が欲しいのです。

 こんな逃げ方はどうでしょうか? この場合 get_defined_vars()は、
必ず関数の先頭で実行される必要があります。

----
<?php
function test($a, $b, $c = 33, $d = 44, $e = 55) {
    $num = count(get_defined_vars());
    print $num;
}
test(1, 2, 3);
?>
----

 でも、なんだか苦しい処理ですね。穴がありそう・・・。


----
和田雅志 (WADA Masashi)
wada@hh.iij4u.or.jp




PHP-users メーリングリストの案内