ReflectionClass::isIterable

このクラスがイテレーション可能かを調べる

説明

public bool ReflectionClass::isIterable()

このクラスがイテレーション可能か(つまり、foreach の内部で使えるか)を調べます。

パラメータ

この関数にはパラメータはありません。

戻り値

クラスがイテレーション可能な場合は、true を返します。 そうでない場合は、false を返します。

例1 基本的な ReflectionClass::isIterable の例

<?php

class IteratorClass implements Iterator
{
    public function __construct() {}

    public function key(): mixed {}

    public function current(): mixed {}

    public function next(): void {}

    public function valid(): bool {}

    public function rewind(): void {}
}

class DerivedClass extends IteratorClass {}

class NonIterator {}

function dump_iterable($class)
{
    $reflection = new ReflectionClass($class);
    var_dump($reflection->isIterable());
}

$classes = ["ArrayObject", "IteratorClass", "DerivedClass", "NonIterator",];

foreach ($classes as $class) {
    echo "Is $class iterable? ";
    dump_iterable($class);
}
?>

上の例の出力は以下となります。

Is ArrayObject iterable? bool(true)
Is IteratorClass iterable? bool(true)
Is DerivedClass iterable? bool(true)
Is NonIterator iterable? bool(false)

参考

  • ReflectionClass::__construct