2010-12-01 8 views
1

OK、私は奇妙に聞こえるが、私は最初の文字列と2番目の配列(文字列を含む)である2つのパラメータを受け取る関数を作成する必要があります。配列値に対応する可変数のパラメータを持つ関数を呼び出すにはどうすればよいですか?

この関数は、sprintfを呼び出します。私の最初のパラメータは$format、配列はさまざまな$argsに対応します。

どうすればこの問題を解決できますか?

ありがとうございます!

答えて

4

よく、vsprintf()機能が必要です。

+0

これはかなりです。 PHPにはほとんどの機能があります。 –

+1

実際に配列の変種が存在しない場合には、組み込みの*関数のためにOPが望んでいたものを達成する関数を持っているようではありません。ユーザ定義の場合、 'call_user_func_array()'を使うことができます。 – Orbling

+0

@Orbling Nah、vsprintfは私が探していたものです:) Orblingありがとう! – AlexV

2

Orblingさんが回答したように、この特定のケースではvsprintfが必要です。

しかし、一般的なケースでは、可変数のパラメータを持つ関数を呼び出すには、複数の引数(任意の数の可変引数)を受け入れる関数内でfunc_get_args()を使用できます。この関数(関数内で呼び出されたとき)は、関数の呼び出し中に渡されたすべてのパラメータを含む配列を返します。

+0

+1 PHPで驚くほど稀にしか使用しない可変引数や匿名関数/コールバックを処理するための関数があります。参照:http://uk.php.net/manual/en/ref.funchand.php – Orbling

+1

@Orblingありがとうございました。はい、非常に興味深い機能がたくさんあります。私はこの機能について知りになった最初の日にとても幸せでした。私をとても幸せにさせたもう1つの機能セットは、魔法の機能を設定したものです。http://php.net/manual/en/language.oop5.magic.php。この質問を見ると、 '__get()'がどのように私を助けてくれたかを知るために、http://stackoverflow.com/questions/4143722/solved-php-faked-multiple-inheritance-having-object-attributes-set-in-fake-pa難しい状況。 –

+0

実際に把握するには、多くの便利な機能があります。 PHPでの私のお気に入りは、 'callbacks * 'を使う' array_ * '関数のような関数型プログラミングです。' create_function() 'と組み合わせて使うと、データ処理が非常に簡単になります。 – Orbling

関連する問題