[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 メーリングリストの案内