(PHP 7 >= 7.2.0)
ReflectionClass::isIterable — Check whether this class is iterable
public ReflectionClass::isIterable ( ) : bool
Check whether this class is iterable (i.e. can be used inside foreach).
This function has no parameters.
 Returns true on success or false on failure. 
Example #1 Basic ReflectionClass::isIterable() Usage
<?php
class IteratorClass implements Iterator {
    public function __construct() { }
    public function key() { }
    public function current() { }
    function next() { }
    function valid() { }
    function rewind() { }
}
class DerivedClass extends IteratorClass { }
class NonIterator { }
function dump_iterable($class) {
    $reflection = new ReflectionClass($class);
    var_dump($reflection->isIterable());
}
$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");
foreach ($classes as $class) {
    echo "Is $class iterable? ";
    dump_iterable($class);
}
?> The above example will output:
Is ArrayObject iterable? bool(true) Is IteratorClass iterable? bool(true) Is DerivedClass iterable? bool(true) Is NonIterator iterable? bool(false)
    © 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
    https://www.php.net/manual/en/reflectionclass.isiterable.php