
`MultipleIterator::__construct` 메소드는 여러 이터레이터를 조합하여 하나의 이터레이터를 생성하는 역할을 합니다. `$mode` 인자는 이터레이터가 생성되는 방식을 결정하는 중요한 인자입니다.
`IteratorIterator`는 이터레이터를 감싸는 이터레이터를 의미합니다. 예를 들어, `ArrayIterator`는 이터레이터를 감싸는 이터레이터입니다.
`Traversable`는 이터레이터 또는 이터레이블을 의미합니다. 예를 들어, `ArrayIterator`와 `ArrayObject`는 이터레이터 또는 이터레이블을 의미합니다.
`$mode` 인자의 값에 따라 이터레이터가 생성되는 방식은 다음과 같습니다.
- `MIT_NEED_ANY`: 이터레이터 중 하나라도 데이터가 있는 경우, 데이터를 반환합니다. 예를 들어, `$iterator1`과 `$iterator2`가 모두 데이터를 가지고 있는 경우, `$iterator1`의 데이터를 반환합니다.
- `MIT_NEED_ONE`: 이터레이터 중 하나라도 데이터가 있는 경우, 데이터를 반환합니다. 예를 들어, `$iterator1`과 `$iterator2`가 모두 데이터를 가지고 있는 경우, `$iterator1`의 데이터를 반환합니다.
- `MIT_NEED_ALL`: 모든 이터레이터가 데이터를 가지고 있는 경우에만 데이터를 반환합니다. 예를 들어, `$iterator1`과 `$iterator2`가 모두 데이터를 가지고 있는 경우, 데이터를 반환합니다.
- `MIT_KEYS_ASSOC`: 모든 이터레이터가 데이터를 가지고 있는 경우에만 데이터를 반환합니다. 예를 들어, `$iterator1`과 `$iterator2`가 모두 데이터를 가지고 있는 경우, 데이터를 반환합니다.
- `MIT_KEYS_NUMERIC`: 모든 이터레이터가 데이터를 가지고 있는 경우에만 데이터를 반환합니다. 예를 들어, `$iterator1`과 `$iterator2`가 모두 데이터를 가지고 있는 경우, 데이터를 반환합니다.
위의 예시 코드에서 `$mode` 인자의 값이 `MIT_NEED_ALL` 인 경우, 모든 이터레이터가 데이터를 가지고 있는 경우에만 데이터를 반환합니다. 예를 들어, `$iterator1`과 `$iterator2`가 모두 데이터를 가지고 있는 경우, 데이터를 반환합니다.
#hostingforum.kr
php
$iterator1 = new ArrayIterator([1, 2, 3]);
$iterator2 = new ArrayIterator(['a' => 1, 'b' => 2, 'c' => 3]);
$multipleIterator = new MultipleIterator($mode = MultipleIterator::MIT_NEED_ALL);
$multipleIterator->attachIterator($iterator1);
$multipleIterator->attachIterator($iterator2);
foreach ($multipleIterator as $value) {
print_r($value);
}
위의 예시 코드에서 `$mode` 인자의 값이 `MIT_NEED_ALL` 인 경우, `$iterator1`과 `$iterator2`가 모두 데이터를 가지고 있으므로 데이터를 반환합니다.
#hostingforum.kr
php
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Array
(
[a] => 1
[b] => 2
[c] => 3
)
2025-03-18 13:47