我对OOP和PHP都很陌生。我正在使用IDE PhpStorm并在我对$width
的引用时给出了这个(见下文)警告。
这是我的代码:
<?php
class box {
private $width;
function __construct(){
$this->width = 3;
}
}
?>
我以前从未见过“字段”一词,我不完全确定“动态声明字段”的含义是什么意思。
在我更新PhpStorm之后,今天似乎出现了这个警告。我做错什么了吗?
此外,如果有人能够通过“注意:不对类型为”stdClass“或派生的对象执行检查来简要说明警告的含义吗?
答案 0 :(得分:11)
请文件|使高速缓存无效... 并重新启动IDE - 更新后您的索引似乎已损坏/已过期。
我并不完全确定句子&#34; Field动态声明的内容&#34;手段。
这意味着未明确声明字段/属性,但依赖__get()
和__set()
魔术方法使其正常工作。
在您的情况下,您确实已正确声明了字段(private $width;
部分) - 它只是IDE的一个小故障,经常在IDE更新后发生。
此外,如果有人能够通过&#34;简单地解释警告意味着什么;注意:不对类型&#34; stdClass&#34;的对象执行检查。或派生&#34;?
这意味着:如果对象是stdClass
的实例或扩展此类,则不执行此检查。
这是因为stdClass
的性质 - 它可以接受对任何字段的调用(甚至是未定义的 - 它会在运行时默默地为你定义)并且不会抛出通常的类所在的错误案例。