11

如何检测变量是循环Traversable中使用的对象?foreach

if(is_traversable($variable)) {
    return (array) $variable;
}
4

2 回答 2

14

用于instanceof确定对象是否Traversable

if($variable instanceof \Traversable) {
  // is Traversable
}
于 2015-07-29T13:16:29.660 回答
14

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; })())
);
于 2016-08-29T05:26:57.470 回答