给定phpDoc manual,我找不到有关此问题的解释
@property-read
@property-write
但仅为@property。他们是干什么的?
@property
gopyfrb31#
Here's a good explanation的魔术属性。基本上,@property-write被解释为一个只写属性,就像它的名字所暗示的那样。例如,Eclipse中的代码完成就利用了这一点。如果你的魔术属性foo被声明为“只写”,那么当你输入$a = $this->f时,它就不会出现在代码完成中。
foo
$a = $this->f
1l5u6lss2#
@property标签在phpDocumentor手册中有详细说明,这个标签只在类docblock中使用,用来记录一个“魔术”属性/变量,即代码中没有定义的属性/变量,因此不能被“docblock 'd”。现在,当你想强调一个特定的“魔法变量”是只读的(不可写的),你可以使用@property-read。如果你有一个“魔法变量”是只读的(不可读的),你可以使用@property-write。当然,我很难想象只读变量是不可读的,但是因为技术上可以做到这一点,所以@property-write可以为你提供文档。@property的这两个“子标记”将在上面链接到的@property页中进一步解释。
yhxst69z3#
@property-read通知IDE一个magicGet only字段。@property-write通知IDE存在一个magicSet only字段。PHP 8.1增加了readonly关键字,基本上禁止将变量设置为其他值(初始值除外)。
readonly
3条答案
按热度按时间gopyfrb31#
Here's a good explanation的魔术属性。
基本上,
@property-write
被解释为一个只写属性,就像它的名字所暗示的那样。例如,Eclipse中的代码完成就利用了这一点。如果你的魔术属性foo
被声明为“只写”,那么当你输入$a = $this->f
时,它就不会出现在代码完成中。1l5u6lss2#
@property标签在phpDocumentor手册中有详细说明,这个标签只在类docblock中使用,用来记录一个“魔术”属性/变量,即代码中没有定义的属性/变量,因此不能被“docblock 'd”。
现在,当你想强调一个特定的“魔法变量”是只读的(不可写的),你可以使用@property-read。如果你有一个“魔法变量”是只读的(不可读的),你可以使用@property-write。当然,我很难想象只读变量是不可读的,但是因为技术上可以做到这一点,所以@property-write可以为你提供文档。
@property的这两个“子标记”将在上面链接到的@property页中进一步解释。
yhxst69z3#
@property-read
通知IDE一个magicGet only字段。@property-write
通知IDE存在一个magicSet only字段。PHP 8.1增加了
readonly
关键字,基本上禁止将变量设置为其他值(初始值除外)。