ReflectionClass::isIterable

(PHP 7 >= 7.2.0)

ReflectionClass::isIterableПроверить, является ли класс итерируемым

Описание

public ReflectionClass::isIterable ( void ) : bool

Проверяет, реализует ли класс интерфейс 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)

Смотрите также