如何在PHPDoc中引用类属性?方法注释中@property无效求助
在PHP方法注释中正确引用类属性的方法
嘿,我来帮你解决这个PHPDoc注释的问题~你之前用@property是找错标签啦!@property是用来在类的根文档块里声明动态属性(也就是那些没在类里显式定义,但通过__get/__set魔术方法访问的属性)的,根本不是用来在方法注释里引用已有属性的,所以不管你写@property Village::mention还是@property $mention都不会生效。
下面给你几种正确的写法,不管是文档生成工具还是IDE(比如PHPStorm)都能完美识别:
方法一:使用@see标签显式链接
@see是PHPDoc里专门用来引用当前项目中其他元素(类、方法、属性)的标签,在方法注释里加上它,就能直接关联到目标属性:
/** * Name tells the story... * * This method makes use of the class's mention property, which you can view details for below. * * @see Village::$mention * @return array Rednecks unset. */ public function redneck() { if(sizeof($this->data)) { unset($this->data); } return $this->data; }
方法二:在注释文本里直接标记属性名
如果只是在描述里提及属性,直接用反引号包裹完整的属性名(类名+::$+属性名),既清晰又能被工具识别;要是指代当前实例的属性,也可以简写为$this->mention:
/** * Name tells the story... * * At this exact point, I want to mention the `Village::$mention` property (or `$this->mention` for the current instance). * * @return array Rednecks unset. */ public function redneck() { if(sizeof($this->data)) { unset($this->data); } return $this->data; }
额外提示
如果你用的是PHPStorm这类IDE,不管用哪种写法,鼠标悬停在标记的属性名上时,都会自动弹出该属性的注释信息,点击还能直接跳转到属性的定义处,非常方便。
内容的提问来源于stack exchange,提问作者Zlatan Omerović
相关产品推荐
相关产品推荐

