如何检测变量是否为Traversable
对象以在foreach
循环中使用?
if(is_traversable($variable)) {
return (array) $variable;
}
如何检测变量是否为Traversable
对象以在foreach
循环中使用?
if(is_traversable($variable)) {
return (array) $variable;
}
is_iterable
可以在 PHP 7.1 及以上版本中使用。
// https://wiki.php.net/rfc/iterable
var_dump(
true === is_iterable([1, 2, 3]),
true === is_iterable(new ArrayIterator([1, 2, 3])),
true === is_iterable((function () { yield 1; })())
);
使用 instanceof
来判断对象是否为 Traversable
if($variable instanceof \Traversable) {
// is Traversable
}
false
,除非导入或完全限定 Traversable 接口,因此 OP 应该在他们的代码中添加 use Traversable;
或使用 \Traversable
。 - Darragh Enright