我有一个相对简单的函数,其中使用了foreach
function foo($t) {
$result;
foreach($t as $val) {
$result = dosomething($result, $val);
}
return $result;
}
我想使用类型提示,
Traversable
似乎是我需要的精确类型提示。 function foo(Traversable $t) {
然而,当使用数组(当然可以在foreach
中使用)时,会出现E_RECOVERABLE_ERROR
:示例
Argument 1 passed to foo() must implement interface Traversable, array given
有没有一种方法可以进行类型提示,或者这不可能吗?
Iterator
接口的任何类也将匹配Traversable
,因为Iterator
是Traversable
的子类型。这是基本的面向对象编程机制。 - dtecharray
作为类型提示,例如function foo(array $array){}
。 - DaleIterator
和Traversable
。 - Nir Alfasi