【问题标题】:PhpStorm Missing property's type declaration on protected propertyPhpStorm 缺少对受保护属性的属性类型声明
【发布时间】:2020-06-23 09:16:00
【问题描述】:

我有类 \App\Console\Kernel,它从供应商类 \Illuminate\Foundation\Console\Kernel 扩展而来。在供应商类中有 $commands 没有类型声明的受保护属性,所以在我自己的类中我无法声明属性类型。

protected $commands = [
        // commands ...
];

但是 PhpStorm 给了我下一个错误:

缺少属性的类型声明

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

怎么办?

【问题讨论】:

标签: php laravel phpstorm


【解决方案1】:

PHP 7.4 开始,您可以在属性上声明类型。所以你可以像这样声明你的属性,把它硬输入到一个数组中。

protected array $commands = [];

Laravel 向后兼容PHP 7.1.37.2.5,具体取决于Laravel 的版本,因此没有实现这一点,所以一些处理继承的类你不能这样做,因为我记住模型上的fillableguarded 等。正如您所描述的,您的情况也是如此。

PHPStorm 检查是一个建议,并没有破坏,它只是想让你使用PHP7.4 功能,如果你没有运行7.4,我建议将PHPStorm 设置为正确PHP 的版本。

【讨论】:

  • 正如我在第二段中描述的 :) 但 ide 希望他输入它。 “所以一些处理继承和类似的类你不能这样做”
猜你喜欢
  • 2011-10-11
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2011-06-06
  • 2011-03-11
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多