PHP 中有多种类型提示,现在在 PHP 8 中更多,在 Psalm 中甚至更多。但是声明类型而不是暗示预期的类型呢?
我有一个interface Collection extends Traversable
,我需要声明它是一个可遍历的类型Abc
。我怎样才能做到这一点,以便 PHPDoc 或 Psalm 知道当我遍历 my 的实例时Collection
,每个元素都是 type Abc
?
换句话说,我需要在接口级别保证断言将始终通过:
function doWithItems(Collection $items): void
{
foreach ($items as $item) {
assert($item instanceof Abc);
}
}