php 在使用者自定義函式中支援可變數量的引數列表。在 php 5.6 及以上的版本中,由 ... 語法實現;在 php 5.5 及更早版本中,使用函式func_num_args(),func_get_arg(),和 func_get_args() 。
... in php 5.6+
php基礎知識詳解教程
案列一:
在php 5.6以後,引數列表可以包括…,他表示函式接受可變數量的引數。引數將作為陣列傳遞到給定的變數中,例如:
<?php
function sum(...$numbers)
return $acc;
}echo sum(1, 2, 3, 4);
?>
以上程式的輸出結果會是什麼。
案例二:
你也可以用…呼叫函式時,將陣列或可遍歷變數或文字拆裝到引數列表中:列如
<?php
function add($a, $b)
echo add(...[1, 2])."\n";
$a = [1, 2];
echo add(...$a);
$a = [1, 2,3,4];
echo add(...$a);
?>
以上程式的輸出結果會是什麼
案列三:
您可以在…之前指定正常位置引數。在這種情況下,只有與位置引數不匹配的尾隨引數將被新增到由…生成的陣列中。
還可以在…之前新增型別提示。如果存在,那麼由……捕獲的所有引數必須是提示類的物件。
<?php
function total_intervals($unit, dateinterval ...$intervals)
return $time;
}$a = new dateinterval('p1d');
$b = new dateinterval('p2d');
echo total_intervals('d', $a, $b).' days';
// this will fail, since null isn't a dateinterval object.
echo total_intervals('d', null);
?>
以上程式輸出的結果是
3 days
catchable fatal error: argument 2 passed to total_intervals() must be an instance of dateinterval, null given, called in - on line 14 and defined in - on line 2
php的基礎知識詳解 方法可變數量的引數
宣告乙個可變數量的引數 static int add params int values add 1,2,3 這時,由於params關鍵字,是可以編譯通過和執行的。params只能應用於方法引數中的最後乙個。在c 編譯器發現add 1,2,3 時,會先尋找是否有add int i,int j,int...
方法可變數量的引數
宣告乙個可變數量的引數 static int add params int values add 1,2,3 這時,由於params關鍵字,是可以編譯通過和執行的。params只能應用於方法引數中的最後乙個。在c 編譯器發現add 1,2,3 時,會先尋找是否有add int i,int j,int...
c 方法可變數量的引數
宣告乙個可變數量的引數 複製 如下 static int add params int values return sum 上面這個方法除去params,是乙個普通的方法,接受int陣列,返回組中的所以項之和。我們可以這樣呼叫 add new int 但是閱讀性不是很高,我們希望能更簡潔 add 1...