值得注意的是,使用 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 块,并且取决于您$args
在 doc 块中定位变量的方式,...$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) {}
...所以:
...是正确的答案(请记住 orientaton: ...$args
or $args,...
)