PHPDoc:使用可变数量的参数记录函数

Wil*_*lco 24 php phpdoc

用于记录接受可变数量参数的类方法的推荐方法是什么?

也许是这样的?

<?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.

  • 有关此",..."语法的详细信息,请访问http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html (7认同)
  • Phpstorm不理解这种语法并且警告参数计数 (4认同)

Mar*_*rty 5

...语法的情况下,PHPStorm 2017.1使用:

/**
 * @param Type[] ...$values One or more values.
 */
public function func(Type ...$values) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

  • 一目了然,直到您注意到紧随其后的 `...`。 (2认同)