這是不行的:
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
)
雖然結果有些不一樣,但看起來是可用的。
沒有留言:
張貼留言