在实例的 属性 上显式键入
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;
...
}
为了帮助我的编辑更好地理解我的代码,我有时需要添加这样的注释:
/* @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;
...
}