php 可變數量引數

2021-08-21 14:37:10 字數 1331 閱讀 5880

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...