如何检测变量是Traversable
在foreach
循环中使用的对象?
if(is_traversable($variable)) {
return (array) $variable;
}
答案 0 :(得分:13)
使用instanceof
确定对象是否为Traversable
if($variable instanceof \Traversable) {
// is Traversable
}
答案 1 :(得分:12)
is_iterable
。
// 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; })())
);