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);
}
?>
#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);
}
?>