php寫一個不定參數/可變參數的函數有兩種方式。
function foo()
{
$numargs = func_num_args();
echo "參數總數量: $numargs<br />\n";
if ($numargs >= 2) {
echo "如果參數總數量大於等於二,第二個參數爲: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "下標 $i 參數爲: " . $arg_list[$i] . "<br />\n";
}
}
foo(1, 2, 3);
func_get_args 返回一個包含函數參數列表的數組 PHP 4+
func_get_arg 返回參數列表的某一項 PHP 4+
func_num_args 返回傳遞給函數的參數數 PHP 4+
function sum(int ...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4);
int
爲參數的類型,可以不指定參數類型,也可以指定爲其他類型
例如:
function sum(...$numbers) {}
function sum(string ...$numbers) {}
function sum(array ...$numbers) {}
function sum($user, $name, string ...$numbers) {}
具體詳情可參考函數的參數