我认为您的意思是instanceof
Iterator,PHP没有
Iterable接口。它确实有一个
Traversable接口。
Iterator并且
IteratorAggregate两者都进行了扩展
Traversable(而AFAIK只是这样做的)。
但是不,实现的对象
Traversable不会通过
is_array()检查,也没有内置
is_iterable()函数。您可以使用的支票是
function is_iterable($var) { return (is_array($var) || $var instanceof Traversable);}需要明确的是, 所有的 php对象都可以使用foreach进行迭代,但是只有 其中一些
实现
Traversable。因此,所提供的
is_iterable功能不会检测到foreach可以处理的所有事情。



