php 如何将数组的每一元素作为可变参数函数的实参传入?

php教程评论2.5K views阅读模式

真实开发遇到问题:
如何将数组每一元素作为可变参数函数的实参传入?

  1. 从MySQL查到多条数据,为一个数组结果集,eg:['张三','李四', 'foo', 'bar'];

  2. 需要将结果集写入 RedisSET 类型;

  3. Redis 的 PHP 操作类库提供 sAdd()方法,使用例子如下:

使用例子:

$redis->sAdd('key1' , 'member1'); /* 1, 'key1' => {'member1'} */
$redis->sAdd('key1' , 'member2', 'member3'); /* 2, 'key1' => {'member1', 'member2', 'member3'}*/
$redis->sAdd('key1' , 'member2'); /* 0, 'key1' => {'member1', 'member2', 'member3'}*/

因为sAdd()是一个可变参数方法,那么,问题来了:
如何才能将上面的 ['张三','李四', 'foo', 'bar'] 这样使用 $redis->sAdd('key1' , '张三', '李四', 'foo', 'bar'); ,而并非如下循环使用:

$redis->multi();
foreach(['张三','李四', 'foo', 'bar'] as $value) {
    $redis->sAdd('key1', $value);
}
$redis->exec();

回复内容:

真实开发遇到问题: 如何将数组每一元素作为可变参数函数的实参传入?

  1. 从MySQL查到多条数据,为一个数组结果集,eg:['张三','李四', 'foo', 'bar'];

  2. 需要将结果集写入 RedisSET 类型;

  3. Redis 的 PHP 操作类库提供 sAdd()方法,使用例子如下:

使用例子:

$redis->sAdd('key1' , 'member1'); /* 1, 'key1' => {'member1'} */
$redis->sAdd('key1' , 'member2', 'member3'); /* 2, 'key1' => {'member1', 'member2', 'member3'}*/
$redis->sAdd('key1' , 'member2'); /* 0, 'key1' => {'member1', 'member2', 'member3'}*/

因为sAdd()是一个可变参数方法,那么,问题来了:
如何才能将上面的 ['张三','李四', 'foo', 'bar'] 这样使用 $redis->sAdd('key1' , '张三', '李四', 'foo', 'bar'); ,而并非如下循环使用:

$redis->multi();
foreach(['张三','李四', 'foo', 'bar'] as $value) {
    $redis->sAdd('key1', $value);
}
$redis->exec();
call_user_func_array
$redis->multi();foreach(['张三','李四', 'foo', 'bar'] as $key=>$value) {
$redis->sAdd('key'.$key, $value);
}$redis->exec();

以上就是php 如何将数组的每一元素作为可变参数函数的实参传入?的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关文章:

php可变参数

JS与PHP向函数传递可变参数的区别实例代码

php可变参数实现

企鹅博客
  • 本文由 发表于 2020年7月16日 14:08:34
  • 转载请务必保留本文链接:https://www.qieseo.com/227821.html

发表评论