看了 PHPUnit 的 source code,發現有個很有趣的寫法:
function assertSame($expected, $actual, string $message = ''): void
{
Assert::assertSame(...func_get_args());
}
最初以為「…」只能用在定義 variable-length function argument/param,重新看了文件才發現之前文件沒有看完,也可以拿來把陣列分別當作 argument/param 傳入:
function add($a, $b) {
return $a + $b;
}
add(...[1, 2]); // $a = 1, $b = 2
// or ...
$args = [1, 2];
add(...$args);