Heim  >  Artikel  >  Backend-Entwicklung  >  函数赋参数问题

函数赋参数问题

WBOY
WBOYOriginal
2016-06-23 14:26:59894Durchsuche

如:
php内置的sprintf()函数
例:
sprintf($xml,$a,$b);
我现在还想往后插入参数$c,$d
但是$c,$d是从数组中取出来的数据。
$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);
$mxl 中至多有 2 个 %s(或其他格式符),否则将产生语法错误
当写作 sprintf($xml,$a,$b,$c,$d); 时
$mxl 中就需要 4 个格式符了
因此,你只是考虑如何传值是不行的

我知道sprintf()的格式要求。
我只是把这个函数拿出来做例子。
当函数遇到传递多个参数时,可否有一种方法,从数组中取值出来,传递给函数,传递的时候是多个参数,不是一个。

call_user_func_array

徐老大,还没有明白我的意思。
我的意思是:
有一个方法:
function test(){ 
}
test($a,$b);//后面可能还会有更多的参数,但这都是动态的可能有5个,也有可能会有6个,不一定。

所以我想通过数组,来遍历来源数组的:
$array=array(1,2,3,4,5);//我现在需要把数组中的值,传到test()后面去,这是5个,但有可能是6个,7个.
如:test($a,$b,1,2,3,4,5);
所以我想试否能通过遍历数组来传递给函数呢?
$args='';
foreach($array as $key=>$val){
  $args.=$val.',';
}
substr($args,0,-1);
test($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个参数,也是我想要的。

function test($a, $b) {  echo '传入: ' . join(',', func_get_args());}test(1,2); //传入: 1,2test(1,2,3,4,5);//传入: 1,2,3,4,5$ar = array('a','b','c','d','e','f');call_user_func_array('test', $ar);//传入: a,b,c,d,e,f


您依然是没有准确的描述你的意思

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn