2011-01-02 16 views
3

を取得します。これは、PHPは、私が探しているものを行うには明らか機能を持っていないことを確認するために非常に驚くべきことであったので、私はここにお願いします。PHP:引数の数

は、あなたが特定の関数は、関数の外ている引数の数を得ることについてどのように行くだろう(ただfunc_num_argsのみから関数のように)。

ソリューションは、実際には関数(つまり、目的を倒すことになる)を実行することができない、と私は反射クラスの任意の並べ替えなし(好ましくは)それを行うにしたいと思います。

可能ですか?これが唯一のユーザ関数ではなく、クラスまたはインスタンス機能で動作します:

$func_reflection = new ReflectionFunction('function_name'); 
$num_of_params = $func_reflection->getNumberOfParameters(); 

注:

答えて

8

ああ、あなたはgetNumberOfParameters関数を定義ReflectionFunctionAbstractから継承ReflectionFunctionクラスを、使用することができます。

+0

私の心配はコストです:高価なリフレクションクラスを使用していますか? – Qix

+0

@ Di-0xide、私はそうだと思いますが、どの選択肢がありますか? –

+1

@Jacob Relkin、true ...私は自分の解決策を動的にやろうとするのではなく、手動の代替策をとることがあります。質問のために、あなたの答えは有効な解決策です。助けてくれてありがとう! – Qix