関数の割り当ての問題

WBOY
WBOYオリジナル
2016-06-23 14:26:59919ブラウズ

例:
PHP の組み込み sprintf() 関数
例:
sprintf($xml,$a,$b);
後でパラメーター $c、$d を挿入したいと思います
ただし、$c、$d はfrom 配列から取り出したデータ。
$array=array(
array('c の内容'),
array('d の内容'),
)
$array をループアウトすると、パラメータを再度入力することは不可能です。方法? ?
$str='';
foreach($array as $key=>$val){
$str.=$val[0].','
}
sprintf($xml,$a,$b) ,$str);


ディスカッションに返信 (解決策)

あなたのアプローチにはいくつかの問題があります

sprintf($xml,$a,$b) の場合
最大 2 つの %s (またはその他) sprintf($xml,$a,$b,$c,$d); と記述すると、構文エラーが発生します
$mxl には 4 つの書式文字が必要です
したがって、次のように考慮してください。値を渡す方法 うまくいきません

sprintf() の形式要件はわかっています。

この関数を例として取り出しました。

関数が複数のパラメーターを渡す場合、1 つではなく複数のパラメーターを渡すときに、配列から値を取得して関数に渡す方法はありますか?

call_user_func_array

Xu 上司、あなたはまだ私の言っている意味を理解していません。

私が言いたいのは:

メソッドがあります:
function test(){
}
test($a,$b);//後でさらにパラメータがあるかもしれませんが、これらはすべて動的であり、5 つある可能性があります、おそらく6つですが、必ずしもそうではありません。

そこで、配列全体でソース配列を走査したいと思います:
$array=array(1,2,3,4,5);//配列の値をテストの後ろに渡す必要があります(), これは 5 ですが、6 または 7 の可能性があります。
例: test($a,$b,1,2,3,4,5); なので、これを渡すことができるか試してみたいと思います。機能についてはどうですか?
$args='';
foreach($array as $key=>$val){
$args.=$val.',';
substr($args,0,-1); ($a,$b,$args);
しかし、この考えは間違っていて申し訳ありません。渡すとき、ここに渡されるのはパラメータなので、途中でどのような処理を行う必要がありますか?

call_user_func_array
このメソッドは制限が多すぎます。

あなたが何をしたいのか分かりませんが、少なくともあなたが挙げた例には問題があります。

適切な例を挙げていただけますか?


あなたが何をしたいのか分かりませんが、少なくともあなたが挙げた例には問題があります。

適切な例を挙げていただけますか?

メソッドがあります:
test($a,$b);//しかし、後でさらにパラメータを追加したいと思います (おそらく複数)。

ただし、現在は

$args="a,b,c";
test($a,$b,$args);//現時点ではパラメータが 3 つしかないため、これは実現できません。
私が望む結果は次のとおりです:
test($a,$b,a,b,c);//これは 5 つのパラメータがあり、これが私が望むものです。

すごいですね

あなたはまだ自分の言いたいことを正確に説明していません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。