Content · Web Development · PHP

PHP MultipleIterator::containsIterator() Method: Usage and Examples

PHP MultipleIterator::containsIterator() Method: Usage and Examples: Tests whether a given iterator object is attached to the MultipleIterator.

2 views Published Oct 17, 2026 Updated Oct 17, 2026 admin

MultipleIterator combines values from multiple iterators at matching iteration positions.

What Is MultipleIterator::containsIterator in PHP?


Tests whether a given iterator object is attached to the MultipleIterator.

MultipleIterator::containsIterator(Iterator $iterator)

Parameters:

  • $iterator — Required. The iterator to attach or traverse.

Example 1: Understanding the Basic Behavior


<?php

$iterator = new MultipleIterator(MultipleIterator::MIT_NEED_ANY);
$firstIterator = new ArrayIterator([1, 2]);
$secondIterator = new ArrayIterator(['a', 'b']);
$iterator->attachIterator($firstIterator, "numbers");
$iterator->attachIterator($secondIterator, "letters");
var_dump($iterator->containsIterator($firstIterator));

Output:

bool(true)

Explanation: Tests whether a given iterator object is attached to the MultipleIterator.

Example 2: Testing Another Case


<?php

$iterator = new MultipleIterator(MultipleIterator::MIT_NEED_ANY);
$firstIterator = new ArrayIterator([5, 6]);
$secondIterator = new ArrayIterator(['c', 'd']);
$iterator->attachIterator($firstIterator, "numbers");
$iterator->attachIterator($secondIterator, "letters");
var_dump($iterator->containsIterator($firstIterator));

Output:

bool(true)

Explanation: The test checks attachment of that iterator instance, not equality of its values.

Practical Example: Applying the Operation


<?php

$iterator = new MultipleIterator(MultipleIterator::MIT_NEED_ANY);
$firstIterator = new ArrayIterator([8, 9]);
$secondIterator = new ArrayIterator(['e', 'f']);
$iterator->attachIterator($firstIterator, "numbers");
$iterator->attachIterator($secondIterator, "letters");
var_dump($iterator->containsIterator($firstIterator));

Output:

bool(true)

Explanation: The MIT_NEED_ALL and MIT_NEED_ANY options change when iteration stops; keys may be positional or associated.

Important Behavior and Edge Cases


  • The test checks attachment of that iterator instance, not equality of its values.
  • The MIT_NEED_ALL and MIT_NEED_ANY options change when iteration stops; keys may be positional or associated.

Comparison With Related Approaches


ApproachWhen to Use It
MultipleIterator::containsIteratorTests whether a given iterator object is attached to the MultipleIterator.
ArrayIteratorAppendIterator concatenates iterators sequentially; MultipleIterator reads several iterators in parallel.

Common Beginner Mistakes


MistakeCorrect Approach
Expecting MultipleIterator to concatenate sequences rather than advance attached iterators together.The test checks attachment of that iterator instance, not equality of its values.
Choosing ArrayIterator without checking whether it provides the same result.AppendIterator concatenates iterators sequentially; MultipleIterator reads several iterators in parallel.

Key Takeaways


  • Tests whether a given iterator object is attached to the MultipleIterator.
  • The test checks attachment of that iterator instance, not equality of its values.
  • The MIT_NEED_ALL and MIT_NEED_ANY options change when iteration stops; keys may be positional or associated.

The examples demonstrate where MultipleIterator::containsIterator fits within synchronized iteration. Verify the relevant preconditions whenever you adapt the code to real data.

Share this resourceSend this page to someone who may find it useful.