值得注意的是,使用 doc 块,例如:
/**
* @param Type[] ...$values One or more values.
*/
public function func(Type ...$values) {
// ...
}
...看起来您可以传递Type 的数组,例如
Foo()->func([Type, Type, Type])
...这会引发一个致命错误,显然是现在。
地点:
Foo()->func(...[Type, Type, Type])
...不像您在方法调用时对其进行了解构。
无论如何,这里的重点是我正在试验 PHPStorm 如何处理 doc 块,并且取决于您在 doc 块中定位 $args 变量的方式,...$args 或 $args,... 确定您在 IDE 中获得的提示类型。
如果你有一个可选长度的函数/方法参数,我真的想要一种方法来建议你应该按名称传递给方法的值,其中它们应该具有特定的顺序被通过。
您可能会想,“只需设置默认参数,$arg1 = 'default', $arg2 = true”这通常是有道理的,但在某些情况下
伪例子:
/**
* @param int ...$args Hour, Minute, Second, Timezone, $arg [, ...$args]
*/
public static function createA(int ...$args) {}
/**
* @param int $args,... Hour, Minute, Second, Timezone, $arg [, ...$args]
*/
public static function createB(int ...$args) {}
/**
* @param int[]|int $args,... Hour, Minute, Second, Timezone, $arg [, ...$args]
*/
public static function createC(int ...$args) {}
...所以:
...是正确答案(请记住方向:...$args 或 $args,...)