PhpStorm 受保护的属性缺少属性的类型声明

rel*_*89n 7 php phpstorm laravel

我有\App\Console\Kernel从供应商类别延伸的类别\Illuminate\Foundation\Console\Kernel。在供应商类中,有$commands受保护的属性,没有类型声明,因此在我自己的类中,我无法声明属性类型。

protected $commands = [
        // commands ...
];
Run Code Online (Sandbox Code Playgroud)

但 PhpStorm 给了我下一个错误:

缺少属性的类型声明

检查信息:报告没有类型声明的属性。

该怎么办?

mrh*_*rhn 8

您可以PHP 7.4在属性上声明类型。因此,您可以像这样声明您的属性,将其硬输入到数组中。

protected array $commands = [];
Run Code Online (Sandbox Code Playgroud)

Laravel向后兼容PHP 7.1.37.2.5取决于版本Laravel,因此没有实现这一点,因此某些处理继承的类不能在模型上执行此操作,我记得fillable等等guarded。正如您所描述的那样,也适用于您的情况。

检查PHPStorm只是一个建议,并没有破坏,它只是试图让您使用PHP 7.4功能,如果您没有运行,7.4我建议设置PHPStorm为正确的版本PHP