Как я могу определить, что переменная является объектом Traversable
для использования в циклах foreach
?
if(is_traversable($variable)) {
return (array) $variable;
}
Как я могу определить, что переменная является объектом Traversable
для использования в циклах foreach
?
if(is_traversable($variable)) {
return (array) $variable;
}
Используйте instanceof
, чтобы определить, является ли объект Traversable
if($variable instanceof \Traversable) {
// is Traversable
}
false
, если только Traversable не будет импортирован или полностью квалифицирован, поэтому OP должен добавить use Traversable;
или использовать \Traversable
в свой код.
- person Darragh Enright; 29.07.2015
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; })())
);