<?php

class BasicClass
{
}
function dump_iterateable($obj)
{
    $reflection = new ReflectionClass($obj);
    var_dump($reflection->isIterateable());
}
$basicClass = new BasicClass();
$stdClass = new StdClass();
dump_iterateable($basicClass);
dump_iterateable($stdClass);
    {
    }
    public function current()
    {
    }
    function next()
    {
    }
    function valid()
    {
    }
    function rewind()
    {
    }
}
class DerivedClass extends IteratorClass
{
}
class NonIterator
{
}
function dump_iterateable($class)
{
    $reflection = new ReflectionClass($class);
    var_dump($reflection->isIterateable());
}
$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");
foreach ($classes as $class) {
    echo "Is {$class} iterateable? ";
    dump_iterateable($class);
}