如何将存储多变量值的变量作为函数的多个独立参数传入?
如何将多个参数整合为单个变量传入函数
你当前的写法是把参数拼接成了字符串,函数只会收到这一个字符串参数,自然达不到预期效果。下面是两种可行的解决办法:
方法1:数组+展开运算符(PHP 5.6及以上可用)
- 先把所有参数放到数组里:
$bindargs = [$var1, $var2, $var3]; - 调用函数时用
...运算符展开数组,数组里的元素会被当作独立参数传入:
这样调用的效果和直接写function(...$bindargs);function($var1, $var2, $var3);完全一致。
方法2:使用call_user_func_array(兼容低版本PHP)
- 同样先把参数存入数组:
$bindargs = [$var1, $var2, $var3]; - 用
call_user_func_array调用函数,第一个参数填函数名,第二个参数传参数数组:call_user_func_array('function', $bindargs);
为什么原来的方法行不通?
你之前把参数拼接成"$var1, $var2, $var3"这种字符串,本质上这只是一个单独的字符串值,函数调用时只会把这个字符串作为一个参数传递,不会自动拆分成三个独立参数,所以无法实现预期效果。
内容的提问来源于stack exchange,提问作者Daniel Violante
相关产品推荐
相关产品推荐

