如何在PHP中编写一个可以接受与emrintf类似的无限个参数的函数?
sprintf("one:%s",$one);
sprintf("one:%s two:%s",$one,$two);
...
答案 0 :(得分:3)
来自php.net的例子
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}
foo(1, 2, 3);
答案 1 :(得分:1)
答案 2 :(得分:1)
一个函数可以接受任意数量的参数;它只需使用以下函数处理它们:func_num_args
,func_get_arg
和func_get_args
。
这三个手册页面给出了示例,但这里是func_get_args
页(引用)中的一个:
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}
foo(1, 2, 3);
输出将是:
Number of arguments: 3<br />
Second argument is: 2<br />
Argument 0 is: 1<br />
Argument 1 is: 2<br />
Argument 2 is: 3<br />
答案 3 :(得分:0)