如何检测对象是否在 PHP 中可遍历?
How to detect if object is Traversable in PHP?
如何检测变量是 Traversable
对象以在 foreach
循环中使用?
if(is_traversable($variable)) {
return (array) $variable;
}
使用instanceof
判断对象是否Traversable
if($variable instanceof \Traversable) {
// is Traversable
}
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; })())
);
如何检测变量是 Traversable
对象以在 foreach
循环中使用?
if(is_traversable($variable)) {
return (array) $variable;
}
使用instanceof
判断对象是否Traversable
if($variable instanceof \Traversable) {
// is Traversable
}
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; })())
);