如何在PHP中使用可变数量的参数?

时间:2011-11-03 11:03:26

标签: php string parameters parameter-passing

  

可能重复:
  PHP function with unlimited number of parameters
  How to pass array as multiple parameters to function?

我想在PHP中创建一个带有可变数量参数的函数,有点像sprintf的加强版本。例如。 sprintf可能如下所示:

$res = sprintf("The number is %d and the string is %s", $num, $str);

有任意数量的参数,我想做这样的事情:

function my_special_printf($special, $format, ....lots of args...)
{
    // do something with $special here

    return sprintf($format, .. lots of args...);
}

这可能吗?

2 个答案:

答案 0 :(得分:2)

您需要func_get_args功能:)

答案 1 :(得分:1)

使用func_get_args();

http://php.net/manual/en/function.func-get-args.php

此函数返回数组中的所有参数。

<?php
function my_printf() {
   $args = func_get_args();
   $string = &args[0];
   return call_user_func_array('printf', $args);
}
?>

或:

<?php
function my_printf($string) {
   $args = func_get_args();
   $args = array_shift($args);
   return vsprintf($string, $args);
}
?>