php8.5
Home/ Manual/ spl / arrayobject/ ArrayObject::setIteratorClass

ArrayObject::setIteratorClass

PHP function Edit on GitHub ✎

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Sets the iterator classname for the ArrayObject

Description

ArrayObject::setIteratorClass(string $iteratorClass): void

Sets the classname of the array iterator that is used by ArrayObject::getIterator().

Parameters

iteratorClass

The classname of the array iterator to use when iterating over this object.

Return Values

Void

Examples

ArrayObject::setIteratorClass() example

php
<?php
// Custom ArrayIterator (inherits from ArrayIterator)
class MyArrayIterator extends ArrayIterator {
    // custom implementation
}

// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Set the iterator classname to the newly
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
var_dump($fruitsArrayObject->getIterator());

?>

The above example will output:

output
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)
    }
  }
}

Source: reference/spl/arrayobject/setiteratorclass.xml · from the official PHP manual (php/doc-en)