函数赋参数问题

php中文网
发布: 2016-06-23 14:26:59
原创
1005人浏览过

如:
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
登录后复制


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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号