Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何声明可遍历类型?_Php_Types_Phpdoc_Psalm Php - Fatal编程技术网

Php 如何声明可遍历类型?

Php 如何声明可遍历类型?,php,types,phpdoc,psalm-php,Php,Types,Phpdoc,Psalm Php,PHP中有多个类型提示,PHP8中有更多,Psalm中甚至有更多。但是,如何声明类型,而不是暗示预期的类型呢 我有一个接口集合extensedtransversable,我需要声明它是类型为Abc的可遍历集合。我如何才能做到这一点,使PHPDoc或Psalm知道,当我迭代我的集合的实例时,每个元素的类型都是Abc 换句话说,我需要在接口级别上保证断言始终通过: function-doWithItems(集合$items):无效 { foreach($items作为$item){ 断言($Abc的

PHP中有多个类型提示,PHP8中有更多,Psalm中甚至有更多。但是,如何声明类型,而不是暗示预期的类型呢

我有一个
接口集合extensedtransversable
,我需要声明它是类型为
Abc
的可遍历集合。我如何才能做到这一点,使PHPDoc或Psalm知道,当我迭代我的
集合的实例时,每个元素的类型都是
Abc

换句话说,我需要在接口级别上保证断言始终通过:

function-doWithItems(集合$items):无效
{
foreach($items作为$item){
断言($Abc的项目实例);
}
}

我的代码中没有一个工作接口示例(这些示例可能很难正确实现),但由于Psalm在Traversable上实现了它,它将类似于:

/**
*@extends Traversable(它有非常全面的诗篇支持,您可以通过源代码查看它们是如何做到的):

/**
*@extends数组集合
*/
最后一个类显示扩展的ArrayCollection

我的代码中没有一个工作接口示例(这些示例可能很难正确实现),但由于Psalm在Traversable上实现了它,它将类似于:

/**
*@extends Traversable(它有非常全面的诗篇支持,您可以通过源代码查看它们是如何做到的):

/**
*@extends数组集合
*/
最后一个类显示扩展的ArrayCollection