3

私はphp関数を持っていますfunction foo($bar1, $bar2, $bar3)

パラメータ名と値を動的に取得する可能性はありますか?

私はfunc_get_argshttp://php.net/manual/de/function.func-get-args.php)を見つけましたが、それは次のようなものを返します

0 => "valueOf$bar1", 1=> "valueOf$bar2", 2 => "valueOf$bar3"

代わりに私が欲しいのは次のようなものです:

"$bar1" => "valueOf$bar1", "$bar2"=> "valueOf$bar2", "$bar3" => "valueOf$bar3"

それは可能ですか?

4

2 に答える 2

5

を使用できますget_defined_vars。例_

于 2012-07-27T10:18:03.817 に答える
2

それは達成できますが、多くの努力が必要です。リフレクションを介してパラメーター名を取得し、を介して取得した値に名前をマップする必要がありますfunc_get_args

これが本当に必要な場合は、別のより単純なルートを使用して、関数が単一のパラメーターオブジェクトを受け取るように定義できます。

class MyParamObj {
    public $foo;
    public $bar;
}

function myfunc(MyParamObj $args) {
    # ...
}
于 2012-07-27T10:16:15.600 に答える