PHP –具有任意数量参数的函数

您可能已经知道PHP允许您使用可选参数定义函数。但是,还有一种方法可以允许完全任意数量的函数参数。

首先,这是一个仅带有可选参数的示例:

// 具有2个可选参数的函数
function foo($arg1 = '', $arg2 = '') {

echo "arg1: $arg1\n";
echo "arg2: $arg2\n";

}
foo('hello','world');
/* prints:
arg1: hello
arg2: world
*/

foo();
/* prints:
arg1:
arg2:
*/

现在,让我们看看如何构建一个可以接受任意数量参数的函数。这次我们将利用func_get_args():

// 是的,参数列表可以为空
function foo() {

// 返回所有传递的参数的数组
$args = func_get_args();

foreach ($args as $k => $v) {
echo "arg".($k+1).": $v\n";
}

}

foo();
/* prints nothing */

foo('hello');
/* prints
arg1: hello
*/

foo('hello', 'world', 'again');
/* prints
arg1: hello
arg2: world
arg3: again
*/