(PHP 7 >= 7.2.0)
ReflectionClass::isIterable — Проверить, является ли класс итерируемым
Проверяет, реализует ли класс интерфейс Iterator (т.е. можно ли использовать его в foreach).
У этой функции нет параметров.
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Пример #1 Использование ReflectionClass::isIterable()
<?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 "Класс $class итерируемый? ";
dump_iterable($class);
}
?>
Результат выполнения данного примера:
Класс ArrayObject итерируемый? bool(true) Класс IteratorClass итерируемый? bool(true) Класс DerivedClass итерируемый? bool(true) Класс NonIterator итерируемый? bool(false)