(PHP 5 >= 5.1.0, PHP 7, PHP 8)
ArrayObject::setIteratorClass — ArrayObject のイテレータクラス名を設定する
配列イテレータのクラス名を設定します。これは ArrayObject::getIterator() で使います。
iteratorClass
このオブジェクトの反復処理に使う配列イテレータのクラス名。
値を返しません。
例1 ArrayObject::setIteratorClass() の例
<?php
// 独自のイテレータ (ArrayIterator を継承したもの)
class MyArrayIterator extends ArrayIterator {
// 独自の実装
}
// フルーツの配列
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
$fruitsArrayObject = new ArrayObject($fruits);
// イテレータのクラス名を新しく設定します
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
var_dump($fruitsArrayObject->getIterator());
?>
上の例の出力は以下となります。
object(MyArrayIterator)#2 (1) { ["storage":"ArrayIterator":private]=> object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(4) { ["lemons"]=> int(1) ["oranges"]=> int(4) ["bananas"]=> int(5) ["apples"]=> int(10) } } }