[PHP]寫一個不定參數/可變參數的函數

php寫一個不定參數/可變參數的函數有兩種方式。

  • func_get_args

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+

  • PHP「...」語法

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) {}

具體詳情可參考函數的參數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章