如何在PHP中使用可变数量的参数? [重复]

时间:2022-08-27 17:42:03

Possible Duplicate:
PHP function with unlimited number of parameters
How to pass array as multiple parameters to function?

可能重复:PHP函数具有无限数量的参数如何将数组作为多个参数传递给函数?

I want to create a function with a variable number of parameters in PHP, kinda like a souped up version of sprintf. E.g. Where sprintf might look like this:

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

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

with an arbitrary number of arguments, I want to do something like this:

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

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

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

Is this possible?

这可能吗?

2 个解决方案

#1


1  

Use func_get_args();

使用func_get_args();

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

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

This function returns all the parameters in array.

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

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

or:

要么:

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

#2


2  

You want the func_get_args function :)

你想要func_get_args函数:)

#1


1  

Use func_get_args();

使用func_get_args();

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

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

This function returns all the parameters in array.

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

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

or:

要么:

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

#2


2  

You want the func_get_args function :)

你想要func_get_args函数:)