PHP 8.1 中是否有针对特定 class 的对象数组的类型提示?

Is there a type hint for an array of objects of a specific class in PHP 8.1?

PHP 8.1 中是否有 类型提示 允许使用 ExampleClass[] 声明它是一个 对象数组 的 class ExampleClass?


在我的具体情况下,ExampleClass 被称为 Task

我想要但不起作用:

private Task[] $tasks;

我的 PHPStorm IDE 告诉我 复数类型只允许在文档类型中使用
- 只有在 PHPDoc 使用 Tasks[] 完全没问题。但是我想用 plain PHP.

错误是: PHP Parse error: syntax error, unexpected token "[", expecting variable


如果我只需要一个对象 Task 而不是一组对象 Task[] 它将适用于:

private Task $task;

这是我目前的解决方法:

private array $tasks;

简短的回答是否定的。

我的理解是,执行这样的事情会带来严重的性能问题。有些人想要一路走下去并拥有成熟的泛型,其他人只想要 type-safe 集合。有人担心,先实施后者可能会阻碍前者的发展。所以我们处于停滞状态。

社区中偶尔会有这样的讨论:https://externals.io/message/108175