在这种情况下,'动态声明的字段'是什么意思?

str*_*dmi 10 php oop phpstorm

我是OOP和PHP的新手.我正在使用IDE PhpStorm,它在我的引用上给了我这个(见下文)警告$width.

警告'动态声明的字段'

这是我的代码:

<?php
class box {
    private $width;

    function __construct(){
        $this->width = 3;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

我以前从未见过"字段"这个术语,我不完全确定"动态声明字段"的含义是什么意思.

在我更新了PhpStorm后,似乎这个警告刚刚出现.我做错什么了吗?

此外,如果有人可以通过"注意:不对类型为stdClass"或派生的对象执行检查来简要解释警告的含义?

Laz*_*One 12

请做文件| 使高速缓存失效...并重新启动IDE - 您的索引在更新后似乎已损坏/过期.


并且我不完全确定"动态声明的字段"的含义是什么意思.

这意味着字段/属性不明确声明,但依赖于__get()__set()魔术方法有它的工作.

在你的情况下你确实已经正确声明了字段(private $width;部分) - 它只是IDE的一个小故障,经常在IDE更新后发生.


此外,如果有人可以通过"注意:不对类型为stdClass"或派生的对象执行检查来简要解释警告的含义?

这意味着:如果对象是stdClass该类的实例或扩展此类,则不执行此检查.

这是因为stdClass它的性质- 它可以接受对任何字段的调用(甚至是未定义的 - 它将在运行时静默地为它定义它),并且不会抛出通常类在某些情况下会出现的错误.