首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 定義可變參數函數:func_get_args() 與 ... 運算子

     編輯:PHP 綜合知識

PHP 函數可接受不固定數量參數。舊版用 func_get_args(),PHP 5.6+ 推薦使用 ...$args(可變參數語法)。

現代寫法:... 運算子 (PHP 5.6+)

function addAnything(...$numbers) {
    $total = 0;
    foreach ($numbers as $n) {
        if (is_int($n)) $total += $n;
    }
    return $total;
}

echo addAnything(1, 5, 7, 8, 11); // 32

舊版寫法:func_get_args()

function addAnythingOld() {
    $total = 0;
    $args = func_get_args();
    foreach ($args as $n) {
        if (is_int($n)) $total += $n;
    }
    return $total;
}

進階:固定參數 + 可變參數

function greet($greeting, ...$names) {
    foreach ($names as $name) {
        echo "$greeting, $name!\n";
    }
}
greet("Hello", "Tom", "Jerry", "Mary");

參數解包:呼叫時展開陣列

$nums = [1, 2, 3];
echo addAnything(...$nums); // 6

func_get_args() vs ...$args 比較

特性func_get_args()...$args
型別提示無可加型別:int ...$nums
參數名稱無(陣列索引)有意義名稱
預設值難處理可在函數簽名給預設
效能稍慢較快
相容性PHP 4+PHP 5.6+

相關函數

  • func_num_args():實際傳入參數個數
  • func_get_arg($index):取得單一參數

新專案請直接使用 ...$args,程式碼更清晰、可維護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved