33

ここSOには、このタイプの同様の質問がすでに2つありますが、どの回答も機能していないようです。

PHPDoc は、関数のオプションのパラメーターをオプションとして認識していないようです。たとえば、次のようになります。

/**
 * Opens the connection and sets encoding
 * 
 * @param string $encoding Encoding.
 */
public function __construct($encoding='UTF-8') 
{
    $this->connect_mysqli();
    $this->set_encoding_mysqli($encoding);
}

$encoding をオプションとして認識すべきではありませんか、それともここに何かが欠けていますか? 私は実際にグーグルでドキュメントを読んでみましたが、見つけたのは次のとおりです。

パラメータがオプションであることを実際のコードで示していない場合 (「$paramname = 'a default value'」を介して)、パラメータの説明でパラメータがオプションであることを言及する必要があります。

したがって、コードに問題はありませんが、ドキュメントに表示されるのは「__construct(string $encoding)」だけで、そのパラメーターはオプションです。

4

1 に答える 1

43

厳密に言えば、PHPは「オプションのパラメーター」を認識していませんが、関数またはメソッドが呼び出されたときに省略できるデフォルト値のパラメーターを認識しています。OK、それは最後にオプションのパラメータですが、あなたの

@param string $encoding Encoding.

デフォルト値は文字列であるため、ここでは完全に正しいです。ドキュメントがあなたに伝えようとしていることは、あなたがそれをあなた自身のように言及するべきであるということです

@param string $encoding (optional) Encoding.

私はあなたに同意します、そのような表記法は

__construct([$encoding])

また

__construct($encoding = 'UTF-8')

いいだろう。バグレポートを投稿できます

https://github.com/phpDocumentor/phpDocumentor2/issues?state=open

更新:これはすでに言及されていることに気づきましたhttps://github.com/phpDocumentor/phpDocumentor2/search?q=optional&type=Issues

于 2012-11-18T15:12:43.453 に答える