這是不行的:
class MyClass
{
public function vlal0(...$var1, $var2)
{
print_r($var1);
print_r($var2);
}
}
$c = new MyClass();
$c->vlal0(1,2,3,4, var2:'test');
因為:PHP Fatal error: Only the last parameter can be variadic...
後來想到一個變通的方式:
class MyClass
{
public function __call($name, $arguments)
{
call_user_func([$this, 'vlal'], $arguments);
}
public function vlal($args)
{
print_r($args);
}
}
$c = new MyClass();
$c->qoo(1,2,3,4, var2:'test');
結果顯示:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [var2] => test )
雖然結果有些不一樣,但看起來是可用的。