在这种情况下 'field declared dynamically' 是什么意思?
What does 'field declared dynamically' mean in this situation?
我对 OOP 很陌生,PHP。我正在使用 IDE PhpStorm,它在我引用 $width
.
时给我这个(见下文)警告
这是我的代码:
<?php
class box {
private $width;
function __construct(){
$this->width = 3;
}
}
?>
我以前从未见过 "field" 这个词,我也不完全确定 "Field declared dynamically" 这句话是什么意思。
这个警告似乎是我今天更新 PhpStorm 后才出现的。我做错什么了吗?
此外,如果有人可以通过 "Note: Check is not performed on objects of type "stdClass" 或 derived" 简要解释警告的含义?
请执行 File | Invalidate Caches...
并重新启动 IDE -- 更新后您的索引似乎是 corrupted/out-of-date。
and I'm not entirely sure what the sentence "Field declared dynamically" means.
这意味着 field/property 没有显式声明,而是依赖于 __get()
和 __set()
魔术方法使其工作。
在您的情况下,您确实正确声明了字段(private $width;
部分)——这只是一个 IDE 故障,在 IDE 更新到较新版本后经常发生。
Also, if anyone can briefly explain what the warning means by "Note: Check is not performed on objects of type "stdClass" or derived"?
确切的意思是:如果对象是 stdClass
的实例或扩展了 class.
则不执行此检查
这是因为 stdClass
的性质——它可以接受对任何字段的调用(即使是未定义的——它会在运行时默默地为你定义它)并且不会抛出通常的错误 classes 会在这种情况下。
我对 OOP 很陌生,PHP。我正在使用 IDE PhpStorm,它在我引用 $width
.
这是我的代码:
<?php
class box {
private $width;
function __construct(){
$this->width = 3;
}
}
?>
我以前从未见过 "field" 这个词,我也不完全确定 "Field declared dynamically" 这句话是什么意思。
这个警告似乎是我今天更新 PhpStorm 后才出现的。我做错什么了吗?
此外,如果有人可以通过 "Note: Check is not performed on objects of type "stdClass" 或 derived" 简要解释警告的含义?
请执行 File | Invalidate Caches...
并重新启动 IDE -- 更新后您的索引似乎是 corrupted/out-of-date。
and I'm not entirely sure what the sentence "Field declared dynamically" means.
这意味着 field/property 没有显式声明,而是依赖于 __get()
和 __set()
魔术方法使其工作。
在您的情况下,您确实正确声明了字段(private $width;
部分)——这只是一个 IDE 故障,在 IDE 更新到较新版本后经常发生。
Also, if anyone can briefly explain what the warning means by "Note: Check is not performed on objects of type "stdClass" or derived"?
确切的意思是:如果对象是 stdClass
的实例或扩展了 class.
这是因为 stdClass
的性质——它可以接受对任何字段的调用(即使是未定义的——它会在运行时默默地为你定义它)并且不会抛出通常的错误 classes 会在这种情况下。