PHPDoc如何为实例对象的属性添加显式类型注解供编辑器识别
@var注解绑定$this属性的可用写法
目前主流PHP IDE(PhpStorm、VS Code的PHP Intelephense插件等)都支持对$this->xxx类属性做类型注解,有几种常用实现方式:
- 写法1(单次使用注解,适配新版本IDE)
调整注解里的类型和变量顺序即可,格式为:/* @var Container $this->container */
注意把类名放在$this->container前面,这种写法在PhpStorm 2020+、Intelephense 1.3+版本都可以正常识别。 - 写法2(全兼容临时变量方案)
如果你的IDE版本较旧不支持上面的写法,可以先把类属性赋值给临时变量再加注解:
这种写法兼容所有支持PHPDoc规范的编辑器,没有适配问题。$container = $this->container; /* @var $container Container */ // 后续调用直接用$container即可获得对应类型的代码提示 - 写法3(全局类属性注解,推荐)
如果这个属性是类的固定成员,直接在类的属性定义处加注解即可,一次定义后整个类的所有方法里调用$this->container都会自动识别类型,不需要每次单独加注解:
这是PHPDoc的标准规范写法,兼容性最好,也符合代码规范要求。class Demo { /** * @var Container 服务容器实例 */ private $container; }
- 注意:如果第一种写法不生效,优先更新你的PHP编辑器/对应PHP插件到最新版本即可。
内容的提问来源于stack exchange,提问作者Dennis
相关产品推荐
相关产品推荐

