(PHP 7 >= 7.2.0, PHP 8)
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)