32

可変数の引数を受け入れるクラスメソッドを文書化するための推奨される方法は何ですか?

多分このようなもの?

<?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());
    }
}

注:原則として、この種のことは可能な限り避けるべきだと思います。そうは言っても、それが避けられない残りのいくつかのケースをまだ文書化するのは素晴らしいことです。

4

4 に答える 4

25

可変数の引数を使用し、さらに使用して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 */
    }
}

PHPStorm は@param array $args、技術的には関数内variadiculous is_array($args)が true であるため、ドキュメントを自動生成します。上記のように変更し@param mixed $args,...、ホットキーを使用してコード PHPStorm が表示する別の場所から関数シグネチャを表示する場合variadiculous($args : ...array|mixed)- PHP >= 5.6 を使用している場合は、この方法を使用することをお勧めします

于 2016-07-08T22:03:27.167 に答える
10
/**
 * @param mixed $numbers,... Description
 */
Public function sum ($numbers)

このメソッドでは、$numbers は使用されません。

于 2013-01-25T00:48:16.040 に答える