如何在PHPDoc中记录多个变量声明

时间:2014-09-29 00:56:14

标签: php phpstorm phpdoc

我使用短语法来定义类的成员变量,而不是

private $a;
private $b;
private $c;

我用

private
    $a,
    $b,
    $c;

现在我使用PHPDoc告诉IDE每个成员的类型如下:

/** @var classA */
private $a;
/** @var classB */
private $b;
/** @var classC */
private $c;

但是这不适用于短语法:

private
    /** @var classA */
    $a,
    /** @var classB */
    $b,
    /** @var classC */
    $c;

我做错了什么?

3 个答案:

答案 0 :(得分:4)

不是你想听到的答案,但你不能这样做。 PHPDoc并不像你想要的那样聪明,尽管如果没有它,地球上的生命几乎是不可能的。

此外,当人们停止关注PSR conventions时,事情通常会开始变得混乱,例如declaring multiple properties per statement。所以,不要重新发明轮子,如果你不喜欢普遍接受的方式 - 坚持下去,你很快就会克服它;)

... Srsly

答案 1 :(得分:4)

实际上,phpDocumentor 2.x确实支持复合声明,但使用一个docblock而不是多个 - http://phpdoc.org/docs/latest/references/phpdoc/tags/var.html

请注意,如果您没有获得预期的文档结果,则可能是错误(如此处显示的错误 - phpDoc @var for compound statement isn't displayed correctly)。

答案 2 :(得分:1)

如果你正在寻找类似的类型;例如:

/** @var string */
private $stringVariable;

/** @var string */
private $stringVariable2;

/** @var string */
private $anotherVariable;

/** @var string */
private $andMoreStringTypes;

您可以为每条规则使用/** @var string */ - 但您也可以使用 DocBlock模板,如下所示:

/**#@+
 * @var string
 */
private $stringVariable;
private $stringVariable2;
private $anotherVariable;
private $andMoreStringTypes;
/**#@-*/