You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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ć

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:45:50