函数赋参数问题

bing15 2013-11-11 11:29:51
如:
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);
...全文
214 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-11-11
  • 打赏
  • 举报
回复
你的做法有些问题 对于 sprintf($xml,$a,$b); $mxl 中至多有 2 个 %s(或其他格式符),否则将产生语法错误 当写作 sprintf($xml,$a,$b,$c,$d); 时 $mxl 中就需要 4 个格式符了 因此,你只是考虑如何传值是不行的
xuzuning 2013-11-11
  • 打赏
  • 举报
回复
function test($a, $b) {
  echo '传入: ' . join(',', func_get_args());
}

test(1,2); //传入: 1,2
test(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
您依然是没有准确的描述你的意思
bing15 2013-11-11
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
我不知道你想做什么,至少你举得例子是有问题的! 你可否举个恰当的例子?
有一个方法: test($a,$b);//但是我想在后面再增加参数,可能是多个。 但目前,我使用 $args="a,b,c"; test($a,$b,$args);//这样是不可行的,因为此时只有3个参数。 我想要的结果是: test($a,$b,a,b,c);//这样才是正常的,有5个参数,也是我想要的。
xuzuning 2013-11-11
  • 打赏
  • 举报
回复
我不知道你想做什么,至少你举得例子是有问题的! 你可否举个恰当的例子?
bing15 2013-11-11
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
call_user_func_array
这个方法限制太死了。
bing15 2013-11-11
  • 打赏
  • 举报
回复
徐老大,还没有明白我的意思。 我的意思是: 有一个方法: 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); 但是很抱歉这种想法是错误的,因为传递的时候,这里传的是一个参数,所以在中间需要做什么处理呢?
xuzuning 2013-11-11
  • 打赏
  • 举报
回复
call_user_func_array
bing15 2013-11-11
  • 打赏
  • 举报
回复
我知道sprintf()的格式要求。 我只是把这个函数拿出来做例子。 当函数遇到传递多个参数时,可否有一种方法,从数组中取值出来,传递给函数,传递的时候是多个参数,不是一个。

20,396

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧