用于记录接受可变数量参数的类方法的推荐方法是什么?
也许是这样的?
<?php
class Foo {
/**
* Calculates the sum of all the arguments.
*
* @param mixed [$arg1, $arg2, ...]
*
* @return float the calculated sum
*/
public static function sum() {
return array_sum(func_get_args());
}
}
Run Code Online (Sandbox Code Playgroud)
注意:作为一般规则,我想在可能的情况下应该避免这种类型的事情.话虽如此,仍然很难记录剩下的几个无法避免的案例.
One*_*ple 17
如果您使用可变数量的参数并且还使用了PHP >= 5.6那么您可以使用仍然符合,...已经提到的PHPDoc 语法的可变参数函数(允许可变数量的参数),并且PHPStorm也将正确地解释文档.使用可变参数函数消除了func_get_args()将参数捕获到数组中的麻烦.
/**
* @param mixed $args,... Explainatorium!
*/
function variadiculous(...$args) {
// NOTE: $args === func_get_args()
foreach ( $args as $arg ) {
/* do work */
}
}
Run Code Online (Sandbox Code Playgroud)
PHPStorm将自动生成文档,@param array $args因为技术上内部函数variadiculous is_array($args)是真的.我将其更改@param mixed $args,...为如上所述,当我使用热键在我的代码PHPStorm显示的其他地方显示函数签名时variadiculous($args : ...array|mixed)- 如果使用PHP> = 5.6,我建议使用此方法
Ryg*_*ygu 10
/**
* @param mixed $numbers,... Description
*/
Public function sum ($numbers)
Run Code Online (Sandbox Code Playgroud)
在该方法中,将不使用$ numbers.
在...语法的情况下,PHPStorm 2017.1使用:
/**
* @param Type[] ...$values One or more values.
*/
public function func(Type ...$values) {
// ...
}
Run Code Online (Sandbox Code Playgroud)