在实例的 属性 上显式键入

Explicit typing on property of instance

为了帮助我的编辑更好地理解我的代码,我有时需要添加这样的注释:

/* @var $container Container */

这很好用,但有时我需要这样的东西:

/* @var $this->container Container */

有这样的吗?

先说几件事:

1. PHPDoc 注释以 /**.

开头

出于兼容性原因,PhpStorm 也能理解普通 /* 注释中的 PHPDoc 标记,但您最好为它们使用正确的符号。

2. 内联 @var 标签的正确元素顺序可以在这里看到:
https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc-tags.md#517-var

/** @var [type] [element_name] [<optional description>] */

例如

/** @var Container $container */

与 #1 一样:PhpStorm 理解此类注释,即使元素被交换(为了与其他(旧)IDE/旧代码兼容)。


您的实际问题:

内联 @var 仅允许类型提示局部/普通变量。您不能将它用于复合变量(不能在此处使用 $this->container$someObject->someVar)。

这是错误的:

/* @var $this->container Container */

// even if it uses correct order/style
/** @var Container $this->container */

如果有的话:此类类型提示应在实际的 class 中提供,位于实际的 属性 声明之上(您省略了 [element_name] 部分)https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc-tags.md#examples-15

class MyAwesomeClass
{
    /** @var Container Optional description here */
    protected $container;
    ...
}