基本上,
@property-write
被解释为 - 顾名思义 - 为只写属性。例如,Eclipse 中的代码完成就利用了它。如果您的魔法属性 foo
被声明为“只写”,当您键入 $a = $this->f
. 时,它不会出现在代码完成中
@property 标签是 phpDocumentor 手册中记录的内容。此标记仅在类文档块中用于记录“魔术”属性/变量,即代码中未定义的属性/变量,因此不能“文档块”。
现在,当你想强调一个特定的“魔法变量”是只读的(不可写的)时,你可以使用@property-read。如果你有一个只写(不可读)的“魔法变量”,你会使用@property-write。诚然,我很难想象无法读取的只写变量,但由于技术上可以做到这一点,@property-write 可用于记录它。
@property 的这两个“子标签”在您上面链接到的@property 页面上有进一步的解释。
@property-read
告诉 IDE 一个神奇的 Get-only 字段。
@property-write
告诉 IDE 存在一个神奇的 Set-only 字段。
PHP 8.1 添加了
readonly
关键字,
这基本上禁止将变量设置为另一个值(初始值除外)。