【发布时间】:2021-04-13 22:38:55
【问题描述】:
PHP 中有多种类型提示,现在在 PHP 8 中更多,在 Psalm 中甚至更多。但是声明类型,而不是暗示预期的类型呢?
我有一个interface Collection extends Traversable,我需要声明它是Abc 类型的可遍历。我该怎么做才能让 PHPDoc 或 Psalm 知道当我遍历 Collection 的实例时,每个元素的类型都是 Abc?
换句话说,我需要在 interface 级别上保证断言将始终通过:
function doWithItems(Collection $items): void
{
foreach ($items as $item) {
assert($item instanceof Abc);
}
}
【问题讨论】:
标签: php types phpdoc psalm-php