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
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